Surge 在最近的更新中增加了DHCP服务器功能,不仅可以作为家庭网络已有设备的网关,也可以用来为新设备分配接入地址。但是主动提供服务的DHCP服务器一般都只能保留一个,如果Surge程序core掉会导致被接管的设备无法上网,且新设备无法获取接入地址,因此个人认为把Surge程序配置成守护是必要的。下面我们来借助macOS自带的的launchd
程序实现这一点。
建立plist配置文件
首先,我们在~/Library/LaunchAgents
目录下建立Surge守护的配置文件。
cd ~/Library/LaunchAgents && vi local.Surge.keepAlive.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>KeepAlive</key>
<true/>
<key>Label</key>
<string>local.Surge.keepAlive</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/open</string>
<string>-W</string>
<string>/Applications/Surge.app</string>
</array>
</dict>
</plist>
然后执行
launchctl load -w ~/Library/LaunchAgents/local.Surge.keepAlive.plist
让launchd读取该配置文件。
然后可以尝试手动退出Surge。如果Surge马上重新打开,我们的目的就达到了。
经测试,在需要更新Surge时,由于后台拉起太快,会导致Surge不能更新。此时我们需要先unload守护配置:
launchctl unload ~/Library/LaunchAgents/local.Surge.keepAlive.plist
然后再更新Surge。更新完后再重新load.
enjoy!