在 macOS 上使用 /etc/rc.local 创建并执行启动脚本


一、简介

由于学校的特殊网络环境,需要同时上内外网,所以有添加静态路由表的需求。

在 Windows 下可以直接设置永久路由表;在 Linux 下则直接把添加路由表的命令写入 /etc/rc.local 就好了。

但是 macOS 下需要手动创建服务文件,而为了一条命令而去创建一个服务,略显麻烦。

下面我教大家如何像 Linux 一样使用 /etc/rc.local 启动脚本文件。


二、操作环境

  • 机型:MacBook Pro 15″ Mid 2015
  • 系统:macOS 10.12.5(经测试,macOS 10.13 依然适用)

三、操作步骤

3.1 创建服务文件

服务文件位置:/Library/LaunchDaemons/com.rc.local.plist

打开终端,执行以下命令

sudo vim /Library/LaunchDaemons/com.rc.local.plist

输入密码完成后,按下 i 键,把以下内容拷贝粘贴进去。

<?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](http://www.apple.com/DTDs/PropertyList-1.0.dtd)">
<plist version="1.0">
<dict>
<key>MachServices</key>
<dict>
<key>[com.rc.local](http://com.rc.local)</key>
<true/>
</dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>[com.rc.local](http://com.rc.local)</string>
<key>Program</key>
<string>/etc/rc.local</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

完成之后按一下 esc ,然后输入一个冒号 : ,再输入 wq 然后按下回车,服务文件就创建完了。

3.2 修改文件所有者和权限

执行以下命令

sudo chown root:wheel /Library/LaunchDaemons/com.rc.local.plist      #更改文件所有者
sudo chmod +x /Library/LaunchDaemons/com.rc.local.plist      #赋予执行权限

3.3 使服务生效

执行以下命令

sudo launchctl load -w /Library/LaunchDaemons/com.rc.local.plist        #加载服务项

3.4 创建 /etc/rc.local 文件并赋予执行权限

执行以下命令

sudo touch /etc/rc.local        #创建 /etc/rc.local 
sudo chmod 777 /etc/rc.local        #赋予权限

3.5 编辑 /etc/rc.local

可以使用 Command+Shift+G 快速定位到 /etc/rc.local ,然后用文本编辑器编辑该文件,然后保存、重启。不出意外的话您的脚本已经开始运行了。

发表评论