簡體   English   中英

在Unix的背景下運行python腳本

[英]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

  1. chomd +x /path/to/script.py
  2. nohup python /path/to/script.py &

要么

而不是關閉你的終端,使用logout它時,你是不是SIGHUP logout因此外殼不會發送SIGHUP到任何children.children的。

暫無
暫無

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

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