2017-02-02 3 views
0

현재 plist를 사용하여 쉘 스크립트를 실행 중입니다.출시 된 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.name.set</string> 
       <key>Program</key> 
       <string>/Users/username_here/Desktop/simple.sh</string> 
       <key>RunAtLoad</key> 
       <true/> 
       <key>StartInterval</key> 
       <integer>5</integer> 
       <key>StandardErrorPath</key> 
       <string>/tmp/com.name.example.stderr</string> 
       <key>StandardOutPath</key> 
       <string>/tmp/com.name.example.stdout</string> 
     </dict> 
     </plist> 

이것은 작동합니다! 그러나 프로그램 이름을

<string>/Desktop/simple.sh</string> 

으로 변경하면 스크립트가 실행되지 않습니다. 또한 ~/Desktop/simple.sh이 작동하지 않습니다.

사용자 이름을 모르거나 절대 경로를 사용하지 않고 스크립트를 실행할 수있는 방법이 있습니까?

꼬리 발사시에도이 오류 메시지가 나타납니다.

com.apple.xpc.launchd[1] (com.name.example[8178]): Service could not initialize: 14F27: xpcproxy + 13421 [1402][AD0301C4-D364-31CE-8BA7-B5DBECE64D0A]: 0x2 

고마워요!

답변

0

데몬이 사용자 별 에이전트 (~/Library/LaunchAgent에 설치됨)로 실행되는 경우 마침표를 사용하여 상대 경로를 얻을 수 있습니다. 어떤 홈 폴더 것 (~/)

그래서 당신은이 작업을 수행 할 수 있습니다

<key>Program</key> 
<string>./Desktop/simple.sh</string> 

당신의 프로그램을 저장하는 더 좋은 수 있습니다 옆 PLIST에 :

./Library/LaunchAgents/simple.sh