用于运行任务并在任务完成后关闭的 Shell 脚本

vip*_*per 3 python linux bash system-administration

我想运行一个 shell 脚本,该脚本运行一个 python 程序并在程序完成后关闭。这是我写的

#!/bin/bash
python program
sudo shutdown -h now
Run Code Online (Sandbox Code Playgroud)

这只是关闭系统而不等待程序完成。是否有其他命令可以用来等待程序完成?

jdi*_*jdi 5

您的示例中的内容实际上应该只在 python 命令完成后才关闭,除非 python 程序提前分叉或后台。

运行它的另一种方法是在第一个命令成功时设置关闭条件

python command && sudo shutdown -h now
Run Code Online (Sandbox Code Playgroud)

当然,如果 python 程序执行诸如分叉或守护进程之类的操作,这仍然对您没有帮助。只需尝试单独运行 python 脚本,并注意控制是否立即返回到控制台。

  • 我并不是说该程序不起作用。我的意思是,如果它守护进程或分叉,那么它将继续运行,但调用进程将提前返回并允许关闭发生。这实际上完全取决于你的 python 程序的作用。当您单独运行它时,它会阻止 shell 直到完成吗? (2认同)