【发布时间】:2013-09-12 18:59:48
【问题描述】:
关于如何从命令行以 root 用户身份加载具有当前用户权限的 plist 有什么想法吗?
我目前管理着 30 台远程 OSX 机器。我决定使用远程桌面更新每台机器上的 /Library/LaunchAgent plist 文件。由于每台机器都需要一个独特的更新,我不愿意以当前登录用户的身份在每台机器上执行此操作。我正在以 root 用户身份通过远程桌面进行更新。我的愿望是使用launchctl 停止 plist,更新 plist,然后重新启动 plist。
我的流程是这样的:
- 使用
launchtl bsexec PID launchctl unload /Library/LaunchAgents/plist以root 身份卸载/Library/LaunchAgent plist。bsexec PID参数允许 root 用户卸载由非 rootlaunchd进程管理的 plist。这成功了。 - 然后,我将以 root 身份更新每台计算机上的 plist。这也很好用。
- 最后,我需要使用
launchctl重新启动/Library/LaunchAgent plist。这就是我的流程崩溃的地方。我无法使用launchctl bsexec PID load /Library/LaunchAgents/plist启动我的 plist——我收到一个无效参数错误。
关于如何以 root 身份使用当前用户权限重新启动服务有什么想法吗?
【问题讨论】:
-
分享完整的错误信息可能会增加您获得有用回复的机会。
-
谢谢。完整的错误是:“无效参数”。这是从命令行返回的。非常简洁。
-
merriam-webster.com/dictionary/loath是单词的形容词形式
-
我在这两个方面都得到了纠正。