OS X - действительно привилегированный вспомогательный инструмент «по требованию»

Мое приложение должно записывать файлы в ограниченные места в файловой системе.
Для этого я использую вспомогательный инструмент, который запускается от имени пользователя root.

Все работает правильно, следуяэтот пример, мой вспомогательный инструмент правильно установлен и запущен. Я использую это решение, чтобы иметь возможность «разбудить» вспомогательный инструмент, в противном случае он не запускается более одного раза после начальной загрузки.

Вспомогательный инструмент ожидает сообщений от основного приложения и правильно их выполняет. У меня также есть своего рода сообщение с просьбой выключить инструмент, который также работает правильно.

Проблема в том, чтоlaunchd перезапускать инструмент каждый раз, когда он выходит, независимо от того, какие ключи я указал вlaunchd.plist файл.
Я не хочу, чтобы вспомогательный инструмент работал вечно, ожидая сообщений, а вместо этого запускался только по требованию.

Вопрос : это нормально, что вспомогательный инструмент перезапускается каждый раз, когда он заканчивается? Если нет, как дать ему умереть и перезапустить по требованию?

Здесь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>KeepAlive</key>
        <dict>
            <key>SuccessfulExit</key>
            <false/>
        </dict>
        <key>RunAtLoad</key>
        <true/>
        <key>Label</key>
        <string>com.mycompany.Helper</string>
        <key>MachServices</key>
            <dict>
                <key>com.mycompany.Helper</key>
                <true/>
            </dict>
     </dict>
</plist>

Конечно, я пробовал различные комбинации ключей и значений, а также различные коды состояния выхода для вспомогательного инструмента. Это никак не изменилосьlaunchd управляет процессом.

Ответы на вопрос(1)

Ваш ответ на вопрос