任务完成后运行任务和关闭的Shell脚本

时间:2012-08-29 05:24:09

标签: python linux bash sysadmin

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

#!/bin/bash
python program
sudo shutdown -h now

这只是关闭系统而不等待程序完成。是否有不同的命令要等待程序完成?

2 个答案:

答案 0 :(得分:2)

你的示例中实际上只有在python命令完成后才会关闭,除非python程序早期分叉或背景。

运行它的另一种方法是在第一个命令

成功时使关闭成为条件
python command && sudo shutdown -h now

当然,如果python程序执行任何类似forking或daemonizing的操作,这仍然无法帮助你。只需尝试单独运行python脚本,并注意控件是否立即返回控制台。

答案 1 :(得分:0)

您可以运行命令halt来停止系统:

   #!/bin/sh
   python program
   sudo halt

python program首先运行,halt将在完成后运行(您可以测试python程序的退出代码)。如果它的行为不符合预期,请尝试理解原因。您可以在halt之前添加logger命令,以便在系统日志中写入内容。