【问题标题】:Invalid Argument error when using launchctl load with bsexec使用带有 bsexec 的 launchctl load 时出现无效参数错误
【发布时间】:2013-09-12 18:59:48
【问题描述】:

关于如何从命令行以 root 用户身份加载具有当前用户权限的 plist 有什么想法吗?

我目前管理着 30 台远程 OSX 机器。我决定使用远程桌面更新每台机器上的 /Library/LaunchAgent plist 文件。由于每台机器都需要一个独特的更新,我不愿意以当前登录用户的身份在每台机器上执行此操作。我正在以 root 用户身份通过​​远程桌面进行更新。我的愿望是使用launchctl 停止 plist,更新 plist,然后重新启动 plist。

我的流程是这样的:

  1. 使用launchtl bsexec PID launchctl unload /Library/LaunchAgents/plist 以root 身份卸载/Library/LaunchAgent plist。 bsexec PID 参数允许 root 用户卸载由非 root launchd 进程管理的 plist。这成功了。
  2. 然后,我将以 root 身份更新每台计算机上的 plist。这也很好用。
  3. 最后,我需要使用launchctl 重新启动/Library/LaunchAgent plist。这就是我的流程崩溃的地方。我无法使用 launchctl bsexec PID load /Library/LaunchAgents/plist 启动我的 plist——我收到一个无效参数错误。

关于如何以 root 身份使用当前用户权限重新启动服务有什么想法吗?

【问题讨论】:

  • 分享完整的错误信息可能会增加您获得有用回复的机会。
  • 谢谢。完整的错误是:“无效参数”。这是从命令行返回的。非常简洁。
  • merriam-webster.com/dictionary/loath是单词的形容词形式
  • 我在这两个方面都得到了纠正。

标签: macos unix launchd


【解决方案1】:

尝试在第二次启动之前添加“sudo”

sudo launchctl bsexec PID sudo launchctl load /Library/LaunchAgents/Your.plist

【讨论】:

    【解决方案2】:

    如果这仍然相关(对我而言),我希望这个答案会有所帮助:

    $sudo launchctl bsexec PID /usr/bin/sudo -u USER /bin/launchctl load /Library/LaunchAgents/com.example.agent.plist
    

    这种方式对我有用,在正确的引导程序中加载代理而不会出错。

    kbai

    【讨论】:

      猜你喜欢
      • 2016-08-18
      • 2018-07-05
      • 1970-01-01
      • 2012-08-28
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 2012-10-21
      相关资源
      最近更新 更多