在 macOS 上,可以通过几种不同的方式让一个 .sh 脚本在开机时自动运行。以下是几种常见的方法:
1. 使用 launchd 来启动脚本
launchd 是 macOS 中用来管理系统服务和启动项的工具。你可以创建一个 .plist 配置文件,让脚本在开机时自动运行。
步骤:
创建一个 .plist 文件,在 ~/Library/LaunchAgents 目录下:
nano ~/Library/LaunchAgents/com.mycompany.myapp.plist
在 .plist 文件中,加入以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.mycompany.myapp</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/Users/yourusername/Documents/frp_0.61.1_darwin_amd64/tart-frpc.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
请确保替换路径 /Users/yourusername/Documents/frp_0.61.1_darwin_amd64/tart-frpc.sh 为你的脚本路径。
RunAtLoad 表示开机时自动运行脚本。
KeepAlive 设置为 true,表示如果脚本结束或崩溃,launchd 会尝试重新启动它。
加载并启动 .plist 文件:
launchctl load ~/Library/LaunchAgents/com.mycompany.myapp.plist
如果要卸载该服务,使用以下命令:
launchctl unload ~/Library/LaunchAgents/com.mycompany.myapp.plist
2. 使用 crontab
crontab 是 Linux 和 macOS 中常用的定时任务管理工具。你可以设置一个任务,让脚本在系统启动时运行。
步骤:
打开 crontab 配置:
crontab -e
添加以下行,让脚本在每次系统启动时运行:
@reboot /bin/bash /Users/yourusername/Documents/frp_0.61.1_darwin_amd64/tart-frpc.sh
保存并退出编辑器。此时,脚本会在系统启动时执行。
3. 使用 System Preferences > Login Items
如果你不想深入修改系统配置文件,可以使用 macOS 的 System Preferences 来设置开机时自动启动脚本。
步骤:
打开 System Preferences > Users & Groups > 选择你的用户账户。
选择 Login Items 标签。
将你的 .sh 脚本或一个包含该脚本的 .app 程序拖到 Login Items 列表中。
这个方法简单易用,但你可能需要将脚本封装成一个可执行的应用程序,或者将脚本放在一个支持启动的应用中。
4. 使用 Automator
Automator 是 macOS 的自动化工具,允许你创建工作流并将其设置为启动项。
步骤:
打开 Automator 应用程序。
创建一个新的文档,并选择“应用程序”类型。
在工作流中添加“运行 Shell 脚本”操作。
在“运行 Shell 脚本”操作中,输入以下内容:
/bin/bash /Users/yourusername/Documents/frp_0.61.1_darwin_amd64/tart-frpc.sh
保存工作流,并将其保存为应用程序。例如,可以将其命名为 frp-autostart.app。
将 frp-autostart.app 添加到 System Preferences > Users & Groups > Login Items 中。
总结
最常见且可靠的方式是使用 launchd,但如果你只是想快速设置,crontab 或 Login Items 也可以是不错的选择。


评论0