Я создал пакет pkg, чтобы создать LaunchAgent для запуска демона, и в файле сценария после установки использовал этот способ для запуска демона:
launchctl load -s /Library/LaunchAgent/file-name.plist
Он работал хорошо.
однако есть проблема: при первом запуске демона, убив этого демона и переустановив LauchAgent, он не мог запустить или убить демона. Он скажет это в терминале:
file-name.plist: Already loaded
если я перезагрузки или выхода из системы, он может начать правильно. Как я могу исправить это?
изменение файла сценария y после установки на:
sudo -u $USER /bin/launchctl unload -S Aqua /Library/LauchAgent/file-name.plist
sudo -u $USER /bin/launchctl load -S Aqua /Library/LauchAgent/file-name.plist
в соответствии с комментарием @Daniel's исправила предыдущую проблему. Это хорошо работало на Mac OS X 10.6 и 10.7, но на 10.5 демон не мог запуститься таким образом. Я попробовал скрипт в терминале после установки. Вот некоторая информация:
launchctl:Error unloading: file-name.plist
launch_msg():Socket is not connected