前些天不是发了一篇文章,关于本地frp的。
我写这篇文章的时间是凌晨三点零八,
断电了,
断电自动重启之后有个问题出现了,
博客在本地服务器重启之后,frp客户端是默认未启动的,
所以博客也就访问不了。
所以需要配置一个frp的自动启动,
本来想用宝塔来解决的
结果发现周期不好解决
于是改用传统方式,
首先是自查来着,
因为据我所知,frpc一般是有开机自启来着,
在开机加载的过程中我也看到了没能成功加载的提示
但是没怎么多想,
通过bash -x /etc/init.d/frpc start
查看日志文件的时候发现了这样一段文字
PID=6893 , Frpc (pid 6893) already running.
这个是指服务已经运行了,
所以我想是否是因为我每次都手动启动导致的,
关掉frpc之后sudo reboot重启
还是失败了
所以这个时候只能尝试通过用系统的 crontab 解决
如果是第一次使用,最好选择(nano)
控制台输入
`sudo crontab -e
`
添加这一行:
`@reboot sleep 15 && /usr/local/frpc/frpc -c /usr/local/frpc/frpc.toml > /dev/null 2>&1 &
`
保持并退出后,
继续重启
但是
还是失败了
指定配置文件路径确实是
-c /usr/local/frpc/frpc.toml
frpc 程序的实际路径也确实是 /usr/local/frpc/frpc
其他的也没啥问题
那问题就出在sleep上了
这里已经找出问题了
经过比对之后
发现是sleep 15 太短了
由于是在我出租屋里面
所以还要经过路由拨号,dns解析等一系列流程
15 秒时,路由器可能还在拨号
frpc 启动后连不上服务器,进程退出
没有守护机制,失败后就彻底停了
所以改成85s解决问题
其实应该用不到85s,这里是保险起见
联通网络之后就不用管了
如果嫌 85 秒等太久,可以用 循环重试 代替固定等待:
一个while指令就行。