실행하려고하는 perl 스크립트 (실제로는 Linux & Windows에서도 성공적으로 실행됩니다)가 있습니다. OSX-10.8.3에서 launchd를 통해. 나는 plist 파일을 작성하는 데 상당히 경험이 없으므로 간과 한 바보가 되길 바란다. 나는 그것이 OSX의 cron을 통해 잘 돌아 간다는 것을 알아야한다. 그래서 내가 만나는 문제는 launchd에만 국한된다. 그러나 launchd를 통해 실행하려고 시도 할 때 "일부 파일 또는 디렉토리 없음"이라고 주장하는 일부 perl '시스템'호출에서 오류가 발생합니다. 나는 "launchctl 부하 -w launchd.sysinv.plist"로 스크립트를로드 할 때, 나는 /var/log/system.log에 다음과 같은 오류를 참조펄 스크립트가 launchd 내에서 실행되지 않았습니다. "system"명령에 대해 "No such file or directory"가 표시되지 않습니다.
<?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>launched.sysinv</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/perl</string>
<string>/Users/lfriedman/cuda-stuff/sw/gpgpu/build/scripts/testing/sysinv.pl</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>14</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
<key>UserName</key>
<string>lfriedman</string>
<key>AbandonProcessGroup</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/sysinv.out</string>
<key>StandardErrorPath</key>
<string>/tmp/sysinv.err</string>
</dict>
</plist>
:
com.apple.launchd[1] (launched.sysinv[51676]): Exited with code: 1
을 여기 PLIST입니다
system(/usr/sbin/system_profiler -detailLevel full &> system_profiler.txt) failed: No such file or directory
/tmp/sysinv.err는 (각각의 호출)와 하나의 에러를 가지고 :
0/tmp/sysinv.out 각 호출과 같은 출력을 갖는다
나는 그 오류의 원인을 혼동합니다. 다시 말하지만 수동으로 perl 스크립트를 실행하면 ('lfriedman'사용자) 또는 cronjob (lfriedman이 소유 함)을 통해 오류없이 정상적으로 작동합니다.
감사합니다. – netllama