簡體   English   中英

獨立使用Popen運行python子進程

[英]Run python subprocess using Popen independently

我想使用python Popen獨立運行一個python腳本作為UNIX shell命令。

Script1.py :這個腳本將采用多個參數。 Script2.py :這個腳本將解析一些條件,並准備調用Script1.py所需的必要參數

假設Script2.py解析了一些條件並准備了運行Script1.py 命令的命令python Script1.py arg1 arg2 arg3

目前正在運行腳本:

proc=subprocess.Popen(Command,shell=True,stdout=None, stderr=None)

但是,當我手動殺死Script2.py (使用CTRL + C)時,我可以看到Script1.py也被殺死/終止。

如何獨立運行Script1.py而不必擔心Script2.py狀態?

window$上從進程中分離進程的方法是:

from subprocess import Popen

CREATE_NEW_PROCESS_GROUP = 0x00000200
DETACHED_PROCESS = 0x00000008
Popen(['python', 'drive:/path/to/loop_test.py', 'some_arg', 'another_arg'],
                 stdin=None, stdout=None, stderr=None, shell=True,
                 creationflags=DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP
                 )

linux你應該能夠使用nohuppreexec_fn=os.setpgrp來實現相同的preexec_fn=os.setpgrp ,即:

Popen(['nohup', 'python', '/path/to/loop_test.py', 'some_arg','another_arg'],
shell=True, stdout=None, stderr=None, preexec_fn=os.setpgrp )

暫無
暫無

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

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