Macos 使Mac OSX launchctl在启动时以root用户身份启动进程

Macos 使Mac OSX launchctl在启动时以root用户身份启动进程,macos,daemon,launchd,Macos,Daemon,Launchd,我的问题是,如何在重新启动后使用launchd start和root权限自动创建MacOSX守护进程 我正在写一个应用程序,用于阻止访问网站的内部使用。它是用python编写的,并修改/ect/hosts文件以禁用或启用列出的URL。主应用程序在django中,我创建了一个PythonTwisted守护程序,它实际修改/etc/hosts文件,因为需要根访问权限 我已经创建了一个plist文件,它只处理一个小问题。重新启动后,守护进程具有我的正常登录权限,而不是根权限 解决方法是使用我的正常权限

我的问题是,如何在重新启动后使用launchd start和root权限自动创建MacOSX守护进程

我正在写一个应用程序,用于阻止访问网站的内部使用。它是用python编写的,并修改/ect/hosts文件以禁用或启用列出的URL。主应用程序在django中,我创建了一个PythonTwisted守护程序,它实际修改/etc/hosts文件,因为需要根访问权限

我已经创建了一个plist文件,它只处理一个小问题。重新启动后,守护进程具有我的正常登录权限,而不是根权限

解决方法是使用我的正常权限停止进程,然后使用sudo启动进程

launchctl unload /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist 
sudo launchctl load /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist 
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>

标签
com.balanceinfosystems.socialshiels.twisted
节目
/source/social_shields/social_shields_.py
持久连接

您把它放错目录了。LaunchAgent是每个用户运行的进程。系统进程进入
/Library/launchdaemon
。它们作为根运行。如果您希望在启动时运行此功能,我建议您通过以下方式明确此功能:

<key>RunAtLoad</key>
<true/>
RunAtLoad