Skip to content

开机自启

zfl9 edited this page May 26, 2023 · 5 revisions

由于某些程序需要在网络 up 的状态下运行,因此在开机自启时,执行顺序很重要,特别是使用 systemd 的系统。

虽然 ss-tproxy.service 中加入了 network-online.target 依赖,但不同系统对网络 up 的定义并不相同,有兴趣的可以看下 systemd 的官方文档:https://systemd.io/NETWORK_ONLINE/

如果遇到开机自启失败的问题,可以在 pre_start 钩子函数中,添加等待网络就绪的代码,最简单的办法,就是 ping 网关,只要网关能 ping 通,就说明网络 up 了:

pre_start() {
    # 只要 ping 失败,就一直等待,请修改为实际的网关 IP
    while ! ping -c1 -W1 192.168.1.1 &>/dev/null; do
        echo "waiting for network up [$((++i))] ..."
        sleep 1
    done
}
Clone this wiki locally