Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Popen独立运行python子流程_Python_Linux - Fatal编程技术网

使用Popen独立运行python子流程

使用Popen独立运行python子流程,python,linux,Python,Linux,我想使用pythonPopen作为unixshell命令独立运行一个python脚本 Script1.py:此脚本将采用多个参数。 Script2.py:此脚本将解析某些条件,并准备调用Script1.py所需的必要参数 假设Script2.py解析了一些条件并准备了一个命令来运行Script1.py 命令:python脚本1.py arg1 arg2 arg3 当前正在以以下方式运行脚本: proc=subprocess.Popen(Command,shell=True,stdout=None

我想使用python
Popen
作为unixshell命令独立运行一个python脚本

Script1.py
:此脚本将采用多个参数。
Script2.py
:此脚本将解析某些条件,并准备调用
Script1.py所需的必要参数

假设
Script2.py
解析了一些条件并准备了一个命令来运行Script1.py 命令
python脚本1.py arg1 arg2 arg3

当前正在以以下方式运行脚本:

proc=subprocess.Popen(Command,shell=True,stdout=None, stderr=None)
但是,当我手动杀死
Script2.py
时(使用CTRL+C),我可以看到Script1.py也被杀死/终止


如何独立运行
Script1.py
而不必担心
Script2.py
的状态?

窗口$
上将进程与其父进程分离的方法是:

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
上,您应该能够使用
nohup
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 )

谢谢……成功了!。你能告诉我“preexec_fn=os.setpgrp”会做什么吗?