LINUX.ORG.RU

[macosx 10.6][launchd] автозапуск программ порождающих дочерние процессы


0

0

Необходимо запускать вместе с макосью программу которая, в числе прочего, будет вызывать произвольный скрипт на баше. Пишу вот твкой plist для launchd'а:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>explorer</string>
        <key>KeepAlive</key>
        <dict>
                <key>SuccessfulExit</key>
                <true/>
        </dict>
        <key>Program</key>
        <string>/usr/libexec/explorer</string>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>
Это вполне валидный plist. Он даже запускает /usr/libexec/explorer при старте системы. Вот только исполняется explorer корректно только до вызова system. Как сделать так чтобы explorer мог порождать дочерние процессы?

★★★★★

Ты название сайта читал?

Sekai ()

А explorer умеет скрипты на баше выполнять? Или в макоси так извращённо баш называется?

Lumi ★★★★★ ()
Ответ на: комментарий от Lumi

explorer вызывает исполняемый файл через system. Исполняемый файл - башескрипт с шабангом. Тут маководы говорят, что потомки убиваются самим lounchd'ом после завершения explorer'а. Однако попытка втиснуть в конец explorer'а бесконечный цикл или воткнуть AbandonProcessGroup true не помогли, что говорит о том что тут что-то другое.

KblCb ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.