Можно ли настроить launchd на OSX (в частности, Mountain Lion) для работы в качестве сторожевого пса, отслеживая процессы после их запуска, чтобы поддерживать их жизнь? Если да, то как?
Создайте файл .plist, сообщающий launchd, что запускать, когда запускать и что делать после выхода. Вот очень простой пример:
<?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>Label</key>
<string>local.someidentifier</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/path/to/executable</string>
</array>
</dict>
</plist>
Есть еще много вариантов; видеть Документы разработчика Apple и страница руководства launchd.plist. После создания файла поместите его в /Library/LaunchDaemons/local.someidentifier.plist (обратите внимание, что имя файла должно соответствовать записи «Label»). Установите его владельца на root, группу на колесо и права доступа 644. Он будет загружен при перезагрузке компьютера, или вы можете загрузить его вручную с помощью sudo launchctl load /Library/LaunchDaemons/local.someidentifier.plist