간단한 bash 스크립트를 작성하여 프로그램 (유일한 인수로 제공)이 실행 중인지 확인하고 스크립트가 아닌 경우 설정된 주소로 이메일을 보냅니다. 스크립트는 명령 줄에서 실행되면 작동하지만 일생 동안 스크립트를 실행하도록 설정하는 사용자 에이전트 (~ / Library / LaunchAgents)로 작동시킬 수는 없습니다. 관련 .plist 파일의 최신 화신은 (Dropbox 모니터링)입니다.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>greencollar.Dropbox.checkRun</string>
<key>StartInterval</key>
<integer>60</integer>
<key>Program</key>
<string>/Users/greencollar/Documents/code/proc_check.sh</string>
<key>ProgramArguments</key>
<array>
<string>proc_check.sh</string>
<string>Dropbox</string>
</array>
</dict>
</plist>
예-bash 스크립트는 실행 가능하며 .plist 파일에 문제가 있음을 나타내는 항목이 콘솔에 없습니다. 나는 / bin / bash 프로그램을 만들려고 시도했지만 아무런 차이가없는 것 같고 execvp (3)를 읽는 것이 그렇지 않다는 것을 암시하는 것처럼 보인다. 나는 또한 <ProgramArguments>
운없이 모든 것을 아래에 두려고 노력했다 . 이것이 나에게 매우 기본적으로 보이고 도움이되지 않아 매우 도움이 될 것입니다!
----------------------------- 1 차 편집 ------------------- --------
쉘 스크립트의 기본 사항은 다음과 같습니다.
#!/bin/bash
PROC=$1
if ! /usr/bin/pgrep $PROC > /dev/null
then
/bin/echo "$PROC is not running!" | /usr/bin/mail -s "$PROC down" email@mydomain
fi
별로 잘못하지는 않습니다 ...
proc_check.sh
쉘 스크립트 의 내용을 포함하도록 질문을 편집하십시오 . 그것 없이는 쉽게 또는 문제가있는 곳에서 가능한 정확하게 복제하려고 시도하는 완전한 문제 해결 프로세스를 수행 할 수 없습니다.
.plist
문제에 대한 문제를 보았 기 때문에 내가하지 않은 것을 인정하고 그 문제를 시험해 보았습니다 (어쨌든 내 시스템에서). 그래서 나는 그것이 문제가 있다고 생각하지 않습니다. 내가 생각하는 새로운 대답은 문제가 어디에서 발생할 수 있는지에 대한 것일 수 있습니다. 분명히 스크립트 의 내용을 보지 않고도 확실하게 말할 수는 없지만 문제가있을 수 있습니다.
.plist
와 proc_check.sh
내 사용, $HOME
물론 경로의 휴식을, 그리고 호출 할 때이 작품 launchd
"Caculator"와 함께 테스트에 나를 위해 say $PROC is not running
. 시스템이 설정하지 않았기 때문에 이메일 전송을 테스트하지 않았습니다. 따라서 내가 작동하는지 확인한 다음 문제 해결을 수행하는 mail
경우에 의해 트리거 될 때 처리 방법에 대해 문제 해결을 수행해야합니다 launchd
. BTW OS X 10.8.5를 실행하고 있습니다. 어떤 버전을 실행하고 있습니까?