Kei*_*son 10 macos daemon launchd
我的问题是如何在重启后使用具有root权限的launchd start创建MacOSX守护进程?
我正在编写一个内部使用的应用程序来阻止访问网站.它是用python编写的,并修改/ ect/hosts文件以禁用或启用列出的URL.主要应用程序是在django中,我创建了一个python twisted守护程序,它执行/ etc/hosts文件的实际修改,因为root访问权限是必需的.
我创建了一个plist文件,它可以处理一个小问题.重新启动后,守护进程具有正常的登录权限,而不是root权限.
解决方法是使用我的正常权限停止进程,然后使用sudo启动进程.
launchctl unload /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist
sudo launchctl load /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist
Run Code Online (Sandbox Code Playgroud)
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.balanceinfosystems.socialshields.twisted</string>
<key>Program</key>
<string>/source/social_shields/social_shields_twisted.py</string>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
Rob*_*ier 20
你把它放在错误的目录中.LaunchAgent是按用户运行的进程.系统进程进入/Library/LaunchDaemons.它们以root身份运行.如果你想在启动时运行它,我建议用以下方法明确表示:
<key>RunAtLoad</key>
<true/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18023 次 |
| 最近记录: |