比systemctl更快捷的简易开机自启
对于客户端来说,需要设定 systemctl 开机自启动和常驻,减少轻量错误,减少人工去机房的次数。
对于服务端来说,由于用 systemctl 看日志信息不方便,故还是用 nohup ./frps -c ./frps.ini & 启动,这样方便随时看连接日志,并且服务端放在云上,机器本身由云服务厂商运维,即便frp server错误,也可以远程登录上去重启frp server。
sudo vim /etc/bash.bashrc
这个需要重启后进入中断才执行。 所以用这个重启frpc不太好,约等于没用。
需要用 /etc/rc.local
,但是在ubuntu20版本中取消了,所以要自己添加。
sudo ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
sudo touch /etc/rc.local
sudo chmod +x /etc/rc.local
vim /etc/rc.local
#!/bin/bash
cd /home/cpr/Desktop/frp_0.37.0_linux_amd64 && nohup ./frpc -c frpc.ini &
在ubuntu18下上述方法在不手动进入shell终端前可能不生效
故此处依然展示frp在ubuntu18中设置systemctl开机自动+守卫进程方法。
找到下载下来的frp.server文件修改之。(StandardOutput, StandardError, SyslogIdentifier负责重定向进程输出)
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/gdp/caopeirui/frp_0.37.0_linux_amd64/frpc -c /home/gdp/caopeirui/frp_0.37.0_linux_amd64/frpc.ini
ExecReload=/home/gdp/caopeirui/frp_0.37.0_linux_amd64/frpc reload -c /home/gdp/caopeirui/frp_0.37.0_linux_amd64/frpc.ini
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
将服务加入systemctl识别目录
sudo ln -s /home/gdp/caopeirui/frp_0.37.0_linux_amd64/systemd/frpc.service /lib/systemd/system/frpc.service
Note that, 如果报错 status=203/ex
,修改.service文件中的user=root
修改 /lib/systemd/system/
中文件后,需执行 sudo systemctl daemon-reload
才能被systemctl识别到。
查看已有服务
systemctl list-unit-files
设置开机自启
sudo systemctl enable frpc.service
启动服务
sudo systemctl start frpc.service