Я создал пакет pkg для создания LaunchAgent для запуска демона и в файле сценария после установки использовал этот способ для запуска демона:
launchctl load -s /Library/LaunchAgent/file-name.plist
Это сработало хорошо.
Однако есть проблема: при первом запуске демона, убивая этого демона и переустанавливая LauchAgent, он не смог запустить или убить демона. Это скажет это в терминале:
file-name.plist: Already loaded
Если я перезагружусь или выйду из системы, он может начать правильно. Как я могу это исправить?
Изменение файла скрипта после установки:
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
согласно комментарию Даниэля все-таки удалось решить предыдущую проблему. Это хорошо работало на Mac OS X 10.6 и 10.7, но на 10.5 демон не мог запустить этот путь. Я попробовал файл скрипта в терминале после установки. Вот некоторая информация:
launchctl:Error unloading: file-name.plist
launch_msg():Socket is not connected