如何从当前应用程序运行独立应用程序?
我有一个用 python 编写的 GUI 应用程序。 GUI 启动后,它应该运行独立的守护进程。但是如果我关闭 GUI 或者它崩溃,守护进程也会退出。有没有一种方法可以独立运行另一个应用程序?
I've got an GUI application written in python.
After GUI starts it should run standalone daemon. But if I close GUI or it crashes, daemon quits too. Is there a way to run one application from another independently?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在Linux下,我通过让我的父进程(在你的例子中是GUI)通过子进程或os.system启动第二个python进程来处理这个问题。第二个进程立即将自身守护进程化。要执行此操作,请参阅此处或此处。
Under Linux, I've handled this by having my parent process (in your case the GUI), launch the second python process via subprocess or os.system. The 2nd process immediately daemonizes itself. To do that see here or here.
虽然我不启动守护进程,但我有一个 pygtk 程序,它使用 启动另一个程序subprocess.Popen() 且 shell=True。例如:
由于这是附加到按钮的回调,因此 pygtk 在单击按钮时会处理一些事情。即使我关闭最初的 pygtk gui 程序,第二个程序仍然运行。 FWIW,这是在 CentOS Linux 系统上。
我曾经用 TkInter 做过类似的事情,但现在我没有可用的代码。那是在 Windows XP 系统上。我的记得是,在第一个进程停止后,第二个进程继续运行。
While I don't start a daemon, I have a pygtk program which starts another program using subprocess.Popen() with shell=True. For example:
Since this is a callback attached to a button, pygtk takes care of things when the button is clicked. Even when I shutdown the initial pygtk gui program, the second program keeps running. FWIW, this is on a CentOS Linux system.
I did something similar with TkInter once, but don't have that code available to me right now. That was on a Windows XP system. My recollection is that the second process continued running after the first was stopped.