Я хочу, чтобы скрипт (bash / zsh / ruby / ...) запускался во время загрузки в OS X. Какой самый простой способ сделать это, не связываясь с файлами xml / plist, и предпочтительно не нужно создавать мета AppleScript ,
12
MacOS X использует Vixie cron, который имеет специальные метатеги для запуска во время перезагрузки. См. Справочную страницу для формата файла.
что-то вроде:
@reboot /path/to/script.sh
в вашем crontab будет работать. Я не уверен, что это лучшее решение, чем launchd, у вас, вероятно, больше мета-инструментов, которые смотрят на launchd, чем cron.
cron
в OS X не так уж хорошо с регистрацией по умолчанию (эта тема была всего несколько дней назад).Если вы измените свое мнение:
Хранить как
com.superuser.245713.plist
в/Library/LaunchAgents/
и сделатьroot:wheel
владельца / группу.источник
/Library/LaunchAgents
а не/System/Library/LaunchDaemons
так как/System
это OS-конкретные вещи , и один под/Library
используется больше для материала третьей стороны. Кроме того,LaunchDaemons
«должен содержать элементы, которые будут запускаться от имени пользователя root, обычно фоновые процессы», гдеLaunchAgents
«запускаться от имени пользователя или в контексте пользовательского пространства». Источником этих цитат является отличная статья по launchd, с которой я консультируюсь по вопросам launchd.Существуют также крюки входа, если вы предпочитаете, чтобы скрипт запускался (как root), когда пользователь входит в систему, а не при загрузке машины.
источник