从另一个python脚本运行python脚本,但不要作为子进程运行

从另一个python脚本运行python脚本,但不要作为子进程运行,python,unix,process,Python,Unix,Process,是否可以从另一个python脚本运行python脚本而不等待终止 父进程将在创建子进程后立即终止 我试过: subprocess.Popen([sys.executable, "main.py"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) 而且: os.system(...) 您只需添加&即可在后台启动脚本: import os os.system('/path/to/script.sh

是否可以从另一个python脚本运行python脚本而不等待终止

父进程将在创建子进程后立即终止

我试过:

subprocess.Popen([sys.executable, "main.py"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
而且:

os.system(...)

您只需添加
&
即可在后台启动脚本:

import os

os.system('/path/to/script.sh &')

exit()
在这种情况下,即使在主Python脚本退出之后,启动的shell脚本仍将继续工作。
但请记住,它可能会导致僵尸进程出现在我们的系统中。

如果您知道另一个Python脚本有一个
main
方法,您只需在代码中调用另一个脚本:

import main
...
exit(main.main())
但在这里,另一个脚本在调用脚本的上下文中执行。如果要避免这种情况,可以通过启动新的Python解释器来使用
os.exec…
函数:

import os
...
os.execl(sys.executable, "python", 'main.py')
exec系列函数将(在Unix Linux下)用新的Python解释器替换当前的Python解释器