我编写了以下程序来运行我的程序作为守护程序,但它没有运行;当我从python调试器运行程序时它工作。
我正在使用Mac os x。
/User/Library/LaunchDaemons/com.bobbob.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>
/Users/vivekbhintade/Desktop/test.py
:
import urllib2
from datetime import datetime
import smtplib
from smtplib import SMTPException
import threading
def checkerror():
#my code which works fine individually, which sends mail after 5 seconds to recipients.
checkerror()
我还使用以下命令从终端运行程序。
launchctl load /Library/LaunchDaemons/com.bobbob.osx.test.plist
这不会导致任何错误。
答案 0 :(得分:2)
在发布后的3个月内,你几乎可以肯定地意识到这一点,但是 Launch Daemons 和 Launch Agents 之间似乎存在一些混淆,我认为值得清理 - 特别是因为代理商通常被称为守护进程。
/Library/LaunchDaemons/
。 /Users/username/Library/LaunchAgents/
。 您的程序不会像/User/Library
中那样运行 - 它需要进入上述一个或另一个路径,具体取决于您打算如何使用它。
答案 1 :(得分:0)