为什么我的自定义启动服务失败并显示状态 78?

为什么我的自定义启动服务失败并显示状态 78?

我正在编写一个服务,当我的 Macbook 上的某个文件发生以下变化时执行一个命令在 Mac OS X 上文件更改时运行脚本

这是我的服务文件(~/Library/LaunchAgents/my-service.plist)

<?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>my-service</string>
    <key>OnDemand</key>
    <true/>
    <key>Program</key>
    <string>/Users/<username>/.../onchange.sh</string>
    <key>StandardErrorPath</key>
    <string>/usr/local/var/log/my-service.error</string>
    <key>StandardOutPath</key>
    <string>/usr/local/var/log/my-service.log</string>
    <key>WatchPaths</key>
    <array>
        <string>/Users/<username>/.../file-to-monitor.txt</string>
    </array>
</dict>
</plist>

然后我启动了我的服务,但失败了,状态为 78。按照https://stackoverflow.com/questions/34215527/what-does-launchd-status-78-mean-why-my-user-agent-not-running,我使用 LaunchControl 进行调试,确实发现了一些与权限相关的错误,并按照应用程序内的说明进行了修复。但即使我卸载并重新加载我的服务后,它仍然失败。

我的脚本onchange.sh有以下内容:

echo 123;

和许可:

-rwxr--r--@   1 <username>  staff    164 Aug  5 08:43 onchange.sh

但是在重新加载并进行一些更改以触发执行之后,我找不到任何东西my-service.logmy-service.errorfile-to-monitor.txt

我第一次使用 launchd。我做错了什么吗?

相关内容