Назад | Перейти на главную страницу

Как автоматически перезапустить службу launchd, если она завершается с кодом выхода 78

Я загружаю двоичный файл c с помощью службы launchd. Его следует перезагружать каждый раз при перезапуске системы. Ниже мой файл plist:

<?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>com.example</string>
<key>ProgramArguments</key>
<array>
    <string>/etc/example/usr/sbin/example_cbinary</string>
</array>
<key>RunAtLoad</key>
    <true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>

Иногда он выходит с кодом выхода 78.

launchctl list | grep example
-   78  com.example

Я не могу найти первопричину этого. Так бывает раз в сто. Чтобы решить эту проблему, я выгружаю и загружаю этот сервис. Я хотел, чтобы он автоматически выгружался и загружался при выходе со статусом 78.

Любая помощь очень заметна

Спасибо в Adavance