launchctl git:找不到命令



好的,所以我正试图使用launchctl在我的github帐户上设置自动提交。为此,我创建了一个预格式化git命令的sh文件和一个每2分钟执行一次sh的plist文件,但plist文件失败了。sh在plist 之外运行时运行良好

launchctl日志为:

Aug  2 00:02:24 Caseys-iMac com.github.gitSync[9227]: /usr/bin/gitsync.sh: line 4: git: command not found
Aug  2 00:02:24 Caseys-iMac com.github.gitSync[9227]: /usr/bin/gitsync.sh: line 5: git: command not found
Aug  2 00:02:24 Caseys-iMac com.github.gitSync[9227]: /usr/bin/gitsync.sh: line 6: git: command not found
Aug  2 00:02:24 Caseys-iMac com.apple.launchd.peruser.501[123] (com.github.gitSync[9227]): Exited with code: 127

plist文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.github.GitSync</string>
    <key>Program</key>
    <string>/usr/bin/gitsync.sh</string>
    <key>ProgramArguments</key>
    <array>
    <string>gitsync.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true />
    <key>StartInterval</key>
    <integer>120</integer>
  </dict>
</plist>

sh文件

#!/bin/bash
DATE=`date`
cd /Applications/Minecraft Server/
git pull origin master
git commit -a -m "Auto Sync - $DATE"
git push origin master

请帮助

路径上没有git。将git.exe所在的路径添加到路径环境变量中。

launchd.plist的手册页提到:

UserName <string>

此可选键指定以用户身份运行作业。此键仅适用于launchd以root用户身份运行时。

因此:

  • 用户的路径中可能有git(因为您提到"shplist之外运行时运行良好")
  • 但如果launchd以root身份运行,那么root的路径中可能没有git

如果可能,最好在plist文件中指定运行作业的用户。

最新更新