前言
笔者在家搞了个树莓派作为小服务器然后弄了个VPS把一些常用服务挂到外网上自己用,但是由于各种各样的原因会被断电,尽管树莓派是可以通电自启动的,但是里面的服务是不会的,因此需要手动去配置开机自启的功能。
/etc/rc.local
其实这个就是debain系linux的开机启动脚本,直接在这里追加命令即可自动重启,但是会有以下问题。
- 在此脚本定义的命令全部都为root启动,但是有些程序是不能用root启动的。因此我们需要是
su -username -c "commander"
的方式来写命令 - 无法做进程守护,就是比如说启动失败了,那就是失败了,无法被自动重启。
systemctl
其实这个才是更推荐的开机自启方法,不仅可以做到守护进程的方式,而且管理起来也更方便
树莓派FRP开机自启配置
具体可以参观上述配置,另外要注意的一点是,最好将将这个命令配合crontab的方式来定时start,由于systemctl管理的进程是不会重复启动,因此可以放心写高时间密度的crontab
具体操作
1
在 /lib/systemd/system中添加 frpc.service
添加以下内容
注意:以下操作
[Unit]
#服务描述
Description=frpc service
After=network.target
After=syslog.target
After=mysqld.service
Wants=network.target
[Service]
RestartSec=2s
Type=simple
#执行命令
ExecStart=/home/mugun/frp/frp_0.51.2_linux_arm64/frpc -c /home/mugun/frp/frp_0.51.2_linux_arm64/frpc.ini
[Install]
WantedBy=multi-user.target
2
重载Systemd配置内容
sudo systemctl daemon-reload
3
设置为开机自启
sudo systemctl enable frpc
4可选
如果有需要的话在crontab中增加
调度策略 sudo systemctl start frpc
以保证frpc在异常退出的能够被系统自动拉起来