응용 프로그램이 실행되고 있지 않으면 자동으로 응용 프로그램을 시작하고 싶습니다. 내 응용 프로그램을 종료하면 자동으로 다시 시작하려고합니다. 내 경우에는 특히 메시지 응용 프로그램.
항상 메시지 앱을 계속 실행하여 다시 시작하려는 메시지를 종료하고 싶습니다.
이것을 처리하는 가장 좋은 방법은 무엇입니까?
응용 프로그램이 실행되고 있지 않으면 자동으로 응용 프로그램을 시작하고 싶습니다. 내 응용 프로그램을 종료하면 자동으로 다시 시작하려고합니다. 내 경우에는 특히 메시지 응용 프로그램.
항상 메시지 앱을 계속 실행하여 다시 시작하려는 메시지를 종료하고 싶습니다.
이것을 처리하는 가장 좋은 방법은 무엇입니까?
답변:
당신이 찾고있는 것은 launchd
.
계속해서 앱을 실행할 수 있습니다 (부팅시 자동 시작, 종료 될 때 다시 시작 / 충돌).
그것을 사용하려면 a를 추가하십시오. plist
~에 파일을 넣다 ~/Library/LaunchAgents/
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>SomeApp.restart</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/SomeApp.app/Contents/MacOS/SomeApp</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>5</integer>
<key>Minute</key>
<integer>10</integer>
</dict>
</dict>
</plist>
그런 다음 한 번로드하십시오. launchctl load ~/Library/LaunchAgents/SomeApp.restart.plist
RunAtLoad
옵션은 launchctl이 처음 실행할 때 응용 프로그램을 시작합니다. KeepAlive
옵션이 충돌하면 응용 프로그램을 다시 시작합니다. StartCalendarInterval
특정 시간에 실행합니다. 아마 이것은 앞의 두 가지와 상호 배타적이지만, launchd로 할 수있는 것을 보여주기 위해 포함됩니다
Launchctl은 재부팅 후이를 실행합니다. 앞서 언급했듯이 launchctl은 원하는 명령입니다. launchctl의 구문이 crontab과 비교하여 다소 어렵다는 것을 알았습니다. 물론 launchctl은 cron보다 훨씬 많은 작업을 수행합니다. 따라서 나는 Lingon launchctl을 관리하기위한 GUI를 제공합니다.