如何将python程序作为守护进程运行?
我编写以下程序以作为守护进程运行我的程序,但它没有运行;当我从python调试器运行程序时,它可以工作 我正在使用MacOSX如何将python程序作为守护进程运行?,python,macos,python-2.7,Python,Macos,Python 2.7,我编写以下程序以作为守护进程运行我的程序,但它没有运行;当我从python调试器运行程序时,它可以工作 我正在使用MacOSX /User/Library/LaunchDaemons/com.bobb.osx.test.plist: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs
/User/Library/LaunchDaemons/com.bobb.osx.test.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.bobbob.osx.test</string>
<key>Program</key>
<string>/Users/vivekbhintade/Desktop/test.py</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
我还使用以下命令从终端运行程序
launchctl load /Library/LaunchDaemons/com.bobbob.osx.test.plist
这不会导致任何错误。您尝试过吗
我相信这个堆栈回答了你的问题:
在发布后的3个月内,您几乎肯定已经意识到了这一点,但在启动守护程序和启动代理程序之间似乎存在一些混淆,我认为这是值得澄清的,特别是因为代理程序通常被称为守护程序 释义
- 守护进程在启动时以root用户身份运行,无法显示UI元素,并且位于
中李>/Library/LaunchDaemons/
- 代理在登录时在用户上下文中运行,并且能够向用户呈现UI元素。它们位于
中李>/Users/username/Library/LaunchAgents/
您的程序位于
/User/Library
中,因此无法运行-它需要进入上述一个或另一个路径,具体取决于您计划如何使用它 launchctl load/Library/LaunchDaemons/com.bobb.osx.test.plist
工作吗?是的,它工作意味着它不会给出任何类型的错误,但是launchctl
也会发送您期望的电子邮件吗?如何从终端运行它?使用$python test.py
?在我看来,#/bin/env python
在文件开头缺失,因此操作系统不知道如何运行它。
launchctl load /Library/LaunchDaemons/com.bobbob.osx.test.plist