关于如何从命令行以 root 用户身份加载具有当前用户权限的 plist 有什么想法吗?
我目前正在管理 30 台远程 OSX 机器。我决定使用远程桌面更新每台机器上的 /Library/LaunchAgent plist 文件。由于每台机器都需要一个独特的更新,我不愿意在每台机器上以当前登录用户的身份执行此操作。我正在以 root 用户身份通过远程桌面进行更新。我的愿望是使用 停止 plist launchctl
,更新 plist,然后重新启动 plist。
我的流程是这样的:
- 使用 root 卸载 /Library/LaunchAgent plist
launchtl bsexec PID launchctl unload /Library/LaunchAgents/plist
。该bsexec PID
参数允许 root 用户卸载由非 rootlaunchd
进程管理的 plist。这成功了。 - 然后,我将以 root 身份更新每台计算机上的 plist。这也很好。
- 最后,我需要重新启动 /Library/LaunchAgent plist 使用
launchctl
. 这就是我的流程崩溃的地方。我无法使用launchctl bsexec PID load /Library/LaunchAgents/plist
-- 我收到一个无效参数错误来启动我的 plist。
关于如何以root身份以当前用户权限重新启动服务的任何想法?