![如何在启动时启动以 root 身份运行的 plist 代理](https://linux22.com/image/1389352/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E5%90%AF%E5%8A%A8%E4%BB%A5%20root%20%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%E7%9A%84%20plist%20%E4%BB%A3%E7%90%86.png)
我已经通过 homebrew 安装了 nginx,默认情况下它提供了一个符号链接的 plist,~/Library/LaunchAgents
并launchctl load ~/Library/LaunchAgents/nginx.plist
以我的用户帐户身份启动 nginx。
我希望 nginx 能够监听端口 443 以测试一些 HTTPS 内容。因此这意味着以 root 身份运行 nginx。通过将 plist 文件放在/Library/LaunchAgents
insetad 中,我可以运行sudo launchctl load ...
,然后 nginx 启动,一切运行正常。
但是,在这种情况下,nginx 不会在启动时启动。每次重启后我都必须手动启动 nginx。
是否可以让 launchctl 在启动时以 root 身份启动 nginx?
答案1
代理在登录时加载,守护进程在启动时加载。代理代表登录的用户运行,守护进程代表 root 或 /UserName
键指定的用户/组运行GroupName
。
将您的工作定义移至/Library/LaunchDaemons
,您应该会没事。