2012-08-02 121 views
2

好吧,所以我正在尝试使用launchctl在我的github帐户上设置自动提交。为此,我创建了一个sh文件,用于执行git命令和每2分钟执行一次sh的plist文件,并且plist文件失败。当plist中的外运行的SH运行正常launchctl git:command not found

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 

请帮助

回答

1

你d没有道路上的混乱。将具有git exe的路径添加到路径环境变量中。

0

man page of launchd.plist提到:

UserName <string> 

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

所以:

  • 您的用户可能在他的路径git(因为你提到的“sh运行正常时,运行plist外”)
  • 但如果launchd以root运行,root的路径中可能没有git。

如果可能的话,这将是最好在你的plist文件来指定在其下作业应运行的用户。