在 Python 中,如何在原始进程关闭时生成新的 Python 进程
In Python, how do I spawn in a new Python Process while the orginal is shutting down
我正在制作一个 python 程序(称为 A),当该程序收到终止信号时,它会启动一个与 运行 不同的 python 程序(称为 B)。当A的程序关闭时,B程序还需要在后台运行ning。
这是我为 A 编写的程序中清理功能的一部分。而且我无权对 B 进行任何更改。(B 是其他人的项目,不允许更改它只是构建在它上面)
我一直在寻找使用 Popen 或 os.spawn 函数,当它接收到 SIGTERM 或 SIGINT 信号时,但出现错误。
当我尝试 os.spawn 时,它给了我一个错误,说找不到文件名 'B.py programArgs',它认为 progarmArgs 是文件名的一部分。
任何我能做的想法。
代码是这样的:
def main():
signal.signal(signal.SIGINT, onExit)
signal.signal(signal.SIGTERM, onExit)
def onExit(sig, frame):
pid = os.spawnl(os.P_NOWAIT, "usr/bin/python3", "python3", "/home/pi/filename", " programArg" )
然后它给我错误:
Python3: can't open file '/home/pi/filename progarmArg': [Errno 2] No such file or directory
假设我没有遗漏任何东西这应该有效
import subprocess
p1 = subprocess.Popen(['python','B location'], stdout=None)
我正在制作一个 python 程序(称为 A),当该程序收到终止信号时,它会启动一个与 运行 不同的 python 程序(称为 B)。当A的程序关闭时,B程序还需要在后台运行ning。
这是我为 A 编写的程序中清理功能的一部分。而且我无权对 B 进行任何更改。(B 是其他人的项目,不允许更改它只是构建在它上面)
我一直在寻找使用 Popen 或 os.spawn 函数,当它接收到 SIGTERM 或 SIGINT 信号时,但出现错误。 当我尝试 os.spawn 时,它给了我一个错误,说找不到文件名 'B.py programArgs',它认为 progarmArgs 是文件名的一部分。
任何我能做的想法。
代码是这样的:
def main():
signal.signal(signal.SIGINT, onExit)
signal.signal(signal.SIGTERM, onExit)
def onExit(sig, frame):
pid = os.spawnl(os.P_NOWAIT, "usr/bin/python3", "python3", "/home/pi/filename", " programArg" )
然后它给我错误:
Python3: can't open file '/home/pi/filename progarmArg': [Errno 2] No such file or directory
假设我没有遗漏任何东西这应该有效
import subprocess
p1 = subprocess.Popen(['python','B location'], stdout=None)