centOS7服务器
launch_shadowsocks.sh:
#!/bin/bash
# description:开机自启脚本
nohup ssserver -c /usr/local/python3Dir/lib/python3.7/site-packages/shadowsocks/config.json start > /dev/null 2>&1 & #启动shadowsocks
/etc/rc.local:
#!/bin/bash
touch /var/lock/subsys/local
/usr/bin/setterm -blank 0 || true
# 添加部分
/home/Weilit/bin/launch_shadowsocks.sh > /home/Weilit/log/launch_shadowsocks.log 2>&1
现象是:服务器启动后,shadowsocks服务未启动,且log文件为空。
1. rc.local可执行权限
检查/etc/rc.local
及/etc/rc.d/rc.local
有无执行权限:
2. 全局变量
为系统在启动过程的时候,当执行/etc/rc.local
的时候,服务器还没完全进入系统,因此 ssserver
这个全局变量是不存在的。
解决方法:
首先用which命令检查ssserver的绝对路径:
之后修改script文件,用绝对路径替换ssserver:
launch_shadowsocks.sh:
#!/bin/bash
# description:开机自启脚本
echo Enter launch_ss.sh #添加该句在sh执行时将内容打印到log文件中,方便查找问题
nohup /usr/local/python3Dir/bin/ssserver -c /usr/local/python3Dir/lib/python3.7/site-packages/shadowsocks/config.json start > /dev/null 2>&1 & #启动shadowsocks