
Я хотел бы узнать, в каком порядке запускаются службы и приложения в OS X (Mountain) Lion из папок автозагрузки, например:
/Library/LaunchAgents
/Library/LaunchDaemons
/System/Library/LaunchAgents
/System/Library/LaunchDaemons
~/Library/LaunchAgent
/Library/StartupItems
/System/Library/StartupItems
решение1
/System/Library/LaunchDaemons
, /Library/LaunchDaemons
, и /Library/StartupItems
все обрабатываются при запуске системы. Нет определенного порядка для папок LaunchDaemons — все в них становится доступным для запуска одновременно, только те, которые <key>RunAtLoad</key><true/>
действительно запускаются немедленно. Метод launchd заключается в том, чтобы запустить их все и позволить им самим разобраться со своими зависимостями.
StartupItems (если таковые имеются) определяют свой собственный порядок. Каждый StartupItem — это папка, которая включает скрипт для запуска и файл, StartupParameters.plist
который (помимо прочего) может определять, что предоставляет StartupItem и что он требует; они будут упорядочены так, что элемент, который предоставляет определенную возможность, будет запущен до тех, которые ее требуют.
Я бы ожидал, что StartupItems запустится после RunAtLoad LaunchDaemons, но не думаю, что это где-то указано, и я бы на это не рассчитывал.
Все элементы в трех папках LaunchAgent загружаются, когда пользователь входит в систему (т.е. когда-то после запуска системы). Как и в случае с LaunchDaemons, здесь нет определенного порядка, все они становятся доступными для запуска одновременно.
/System/Library/StartupItems
Наконец, в OS X Lion нет папки.