Я хочу, чтобы скрипт (bash/zsh/ruby/...) запускался во время загрузки в OS X. Какой самый простой способ сделать это, не связываясь с файлами xml/plist, и предпочтительно не нужно создавать мета AppleScript ,
3 ответа
Если вы измените свое мнение:
<?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>com.superuser.245713</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/script.sh</string>
</array>
<key>UserName</key>
<string>someuser</string>
</dict>
</plist>
Сохраните как com.superuser.245713.plist
в /Library/LaunchAgents/
и сделайте root:wheel
владельцем / группой.
MacOS X использует Vixie Cron, который имеет специальные метатеги для запуска во время перезагрузки. См. Справочную страницу для формата файла.
что-то вроде:
@reboot /path/to/script.sh
в вашем crontab будет работать. Я не уверен, что это лучшее решение, чем launchd, у вас, вероятно, больше мета-инструментов, которые смотрят на launchd, чем cron.
Существуют также крюки входа в систему, если вы предпочитаете, чтобы скрипт запускался (как root), когда пользователь входит в систему, а не при загрузке машины.