簡體   English   中英

Shell 運行任務並在任務完成后關閉的腳本

[英]Shell script to run task and shutdown after task is done

我想運行一個 shell 腳本,該腳本運行一個 python 程序並在程序完成后關閉。 這是我寫的

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

這只是關閉系統而不等待程序完成。 是否有其他等待程序完成的命令可供使用?

您的示例中的內容實際上應該只在python命令完成后關閉,除非python程序早期分叉或背景。

運行它的另一種方法是在第一個命令成功時使關閉成為條件

python command && sudo shutdown -h now

當然,如果python程序執行任何類似forking或daemonizing的操作,這仍然無法幫助你。 只需嘗試單獨運行python腳本,並注意控件是否立即返回控制台。

您可以運行命令halt來停止系統:

   #!/bin/sh
   python program
   sudo halt

python program首先運行,並在完成后halt運行(您可能會測試python程序的退出代碼)。 如果它的行為不符合預期,請嘗試理解原因。 您可以在halt之前添加logger命令以在系統日志中寫入內容。

或者,您可以像這樣使用command substitution

$(command to run your program)

腳本會等到包裝的命令完成,然后再轉到下一個命令!

#!/bin/sh
$(python program.py)
sudo shutdown -P 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM