【问题标题】:MacOS - What is wrong with my launchd plist?MacOS - 我的已启动 plist 有什么问题?
【发布时间】:2019-08-01 03:03:46
【问题描述】:

MacOS High Sierra,我有一个要与 launchd 一起使用的 plist。

我正在尝试在~/Library/LaunchDaemon 中使用它,但它不起作用。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.myscript.mac.plist</string>
    <key>Program</key>
    <string>/private/var/myscript.sh</string>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>LaunchOnlyOnce</key>        
    <true/>
  </dict>
</plist>

当我使用sudo lauchctl load com.myscript.mac.plist 时,没有任何输出。 没有确认消息,没有错误消息,什么都没有。这就是我似乎停滞不前的地方。

顶级文件夹 private 被隐藏,以防万一。

我的脚本有什么问题?为什么我不能让它运行?

【问题讨论】:

    标签: macos plist sudo launchd launch-daemon


    【解决方案1】:

    三个可能的原因:

    1. plist 中的Label 必须指定不带扩展名:com.myscript.mac
    2. 如果守护程序位于用户库中,则必须在没有sudo 的情况下加载它
    3. 文件夹名称为LaunchDaemons(尾随s

    【讨论】:

    • 1.我已经看到使用有和没有的例子,但是我会尝试你的建议。 2. 您能否进一步解释这一点:“位于用户库中”?通过将它用作 LaunchDaemons,它不会以 root 用户的身份为所有用户和任何用户运行吗?关于不加载 sudo,这很重要吗?我以为一旦它被加载,它就会一直从那个时候开始运行?
    • 有两个不同的位置~/Library/LaunchDaemons(其中~ 代表用户的主文件夹)和/Library/LaunchDaemons,本地(主)域。前者必须在没有sudo 的情况下加载后者与sudo
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 2017-08-27
    • 2012-05-03
    • 2018-09-22
    • 2013-04-19
    • 2017-04-08
    • 2013-11-13
    相关资源
    最近更新 更多