2012-08-02 159 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文件來指定在其下作業應運行的用戶。