Способ сделать это в Mac OS X - использовать Launch Services.Он заменяет старые системные службы, такие как init
и crontab
, и предоставляет единую унифицированную среду для управления системными службами.
В вашем случае вам, вероятно, не нужен отдельный скрипт - ведение экземпляразапуска вашего приложения должна обрабатываться системой.Сначала вам нужно создать .plist
файл, который описывает ваш демон / скрипт / приложение.Вы размещаете его в одном из следующих расположений, в зависимости от типа услуги:
~/Library/LaunchAgents
: пользовательские агенты, предоставляемые пользователем. /Library/LaunchAgents
: на-пользовательские агенты, предоставленные администратором. /Library/LaunchDaemons
: общесистемные демоны, предоставленные администратором. /System/Library/LaunchAgents
: Mac OS X для отдельных пользователей. /System/Library/LaunchDaemons
: Mac OS X Системные демоны.
После того, как вы определили службу, вы можете использовать команду launchctl
для управления launchd
.Например, вы можете перечислить запущенные службы, запускать / останавливать службы и т. Д.
Полная документация приведена здесь: