使用python启动一个独立的进程

Jtg*_*enz 9 python windows subprocess daemon process

这真是一个非常简单的问题,但我似乎无法找到任何解决方案.

我有一个python脚本,我想启动一个独立的守护进程.我想调用ym python脚本,启动这个系统托盘dameon,在数据库文件上做一些python魔法并退出,让系统托盘守护进程运行.

我试过os.system,subprocess.call,subprocess.Popen,os.execl,但它始终保持我的剧本还活着,直到我关闭系统托盘守护进程.

这听起来应该是一个简单的解决方案,但我无法得到任何工作.

编辑:Windows解决方案:http:os.startfile() //docs.python.org/library/os.html?highlight = startfile#os.startfile

有时放弃和询问意味着你只是在答案的尖端.

jtp*_*yda 8

您可以使用几个漂亮的Popen参数在 Windows 上完成一个真正的分离过程(感谢 greenhat 在此处回答):

import subprocess

DETACHED_PROCESS = 0x00000008
results = subprocess.Popen(['notepad.exe'],
                           close_fds=True, creationflags=DETACHED_PROCESS)
print(results.pid)
Run Code Online (Sandbox Code Playgroud)

另请参阅此答案以获得漂亮的跨平台版本(请务必添加,close_fds因为它对 Windows 至关重要)。


Jtg*_*enz 5

Windows解决方案: os.startfile()

就像您双击一个可执行文件并使它独立启动一样。一个非常方便的班轮。

http://docs.python.org/library/os.html?highlight=startfile#os.startfile