小唠叨问题:
我有一个python脚本正常工作,除非我选择菜单选项Popen另一个python脚本:
myPath = r"c:\Python27\myScript.py"
cmd = r"c:\Python27\python.exe '{}'".format(myPath)
py_process = Popen(cmd, stdout=PIPE, stdin=PIPE, stderr=STDOUT)
当我运行该片段(在Windows中)时,子进程按预期在后台启动,但是当我尝试退出主脚本但让子进程在后台运行时:
raise SystemExit
...一个空窗口“c:\ python27 \ python.exe”仍然存在。我尝试过其他类似结果的EXIT方法。注意:当我退出主脚本而不运行该代码片段时,python窗口会根据需要消失。
我的目标是在所有情况下退出主脚本后不留下任何跟踪/窗口,但子进程应该仍然在后台运行。
有任何建议可以实现这一目标吗?
谢谢!
答案 0 :(得分:0)
如果您想首先与已启动的流程进行通信,然后将其单独运行以进一步运行,您可以选择以下几种方法:
它不会创建“完全独立的进程”(python-daemon包的功能)。在其他情况下,您应该重定向到os.devnull child的stdin / stdout / stderr以避免等待输入和/或虚假输出到终端