前言

笔者在家搞了个树莓派作为小服务器然后弄了个VPS把一些常用服务挂到外网上自己用,但是由于各种各样的原因会被断电,尽管树莓派是可以通电自启动的,但是里面的服务是不会的,因此需要手动去配置开机自启的功能。

/etc/rc.local

其实这个就是debain系linux的开机启动脚本,直接在这里追加命令即可自动重启,但是会有以下问题。

  1. 在此脚本定义的命令全部都为root启动,但是有些程序是不能用root启动的。因此我们需要是su -username -c "commander" 的方式来写命令
  2. 无法做进程守护,就是比如说启动失败了,那就是失败了,无法被自动重启。

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在异常退出的能够被系统自动拉起来