[英]Have python script run in background of unix
我有一個python腳本,我想在UNIX服務器上的后台執行。 問題是我需要python腳本來等待上一步完成,然后再執行下一個任務,但是我希望我的工作在退出后繼續運行。
我想我可以設置如下,但希望確認:
該腳本的摘錄如下所示,其中命令2取決於命令1的輸出,因為它在同一目錄中輸出已編輯的可執行文件。 我想指出的是,命令1和2沒有包含nohup /&。
subprocess.call('unix command 1 with options', shell=True)
subprocess.call('unix command 2 with options', shell=True)
如果當我像這樣啟動我的python腳本時:
% nohup python python_script.py &
我的腳本會在后台運行,因為我沒有明確將nohup /&放在腳本化的Unix命令中,而是在后台運行了python腳本?
是的,通過使用nohup(不掛機)運行python腳本,當網絡斷開時,腳本不會發生扭曲,尾隨&符號將在后台運行腳本。
您仍然可以查看腳本的輸出,nohup會將stdout傳遞給nohop.out文件。 您可以通過尾隨該輸出文件來實時查看輸出:
$ tail -f nohop.out
關於nohup.out文件的快速說明...
nohup.out The output file of the nohup execution if
standard output is a terminal and if the
current directory is writable.
或在命令后加上&來作為守護程序運行python腳本並尾隨日志。
$ nohup python python_script.py > my_output.log &
$ tail -f my_output.log
你可以使用nohup
chomd +x /path/to/script.py
nohup python /path/to/script.py &
要么
而不是關閉你的終端,使用logout
它時,你是不是SIGHUP logout
因此外殼不會發送SIGHUP到任何children.children的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.