我想要一个脚本(bash/zsh/ruby/...)在 OS X 启动时运行。最简单的方法是什么,不弄乱 xml/plist 文件,最好不需要制作元 AppleScript。
答案1
MacOS X 使用 Vixie cron,它具有用于在重启时启动的特殊元标记。请参阅手册页文件格式。
就像是:
@reboot /path/to/script.sh
在您的 crontab 中可以工作。我不确定这是否是比 launchd 更好的解决方案,您可能有更多查看 launchd 的元工具,而不是 cron。
答案2
如果您改变主意:
<?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
所有者/组。
答案3
还有登录钩子如果您希望脚本在用户登录时而不是在机器启动时运行(以 root 身份)。
下面是一个示例,对它们进行了更简要的解释: 如何在 OS X 中登录/注销时运行脚本?