Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将python程序作为守护进程运行?_Python_Macos_Python 2.7 - Fatal编程技术网

如何将python程序作为守护进程运行?

如何将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

我编写以下程序以作为守护进程运行我的程序,但它没有运行;当我从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/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