本文重点讲一下 后台运行和程序崩溃恢复运行.
后台运行
1.使用systemctl来管理
服务器端配置如下
vim /lib/systemd/system/frps.service [Unit] Description=frp Service After=network.target [Service] Type=simple User=root ExecStart=/your/path/frps -c /your/path/frps.ini #启动服务的命令(此处写你的frps的实际安装目录) [Install] WantedBy=multi-user.target
客户端配置也很类似,到这里,可以通过systemctl start frps[frpc]
启动服务了
但是,如果机器重启了,还需要手动运行这些服务,比较麻烦,而且如果网络中断,可能服务就挂了,需要手动重启服务.如果能够实时监控服务运行状况,而且服务挂了自动运行,就完美了.
监控服务
服务器端监控frps //原文复读
#!/bin/sh ps -fe|grep frps |grep -v grep if [ $? -ne 0 ] then echo "start process....." systemctl start frps else echo "runing....." fi
客户端端监控frpc //基于CentOS 7 测试
#!/bin/bash ps -fe|grep frp/frpc |grep -v grep if [ $? -ne 0 ]; then echo "start process....." systemctl start frpc else echo "runing....." fi
frps 表示进程特征字符串,能够查询到唯一进程的特征字符串(客户端用frpc代替就可以了)$?
表示上一个脚本运行的返回值-ne 0
不等于0 表示没有查询到结果-eq 0
等于0 表示查询到结果
定时监控
每一分钟运行脚本
# crontab -e */1 * * * * sh /your/path/filename.sh
客户端也要做相应处理,到此,完美解决了这个问题.再也不用担心我的内网穿透问题了.
感谢博主清晰明了的指引。
<code>nobody 11050 1 0 12月26 ? 00:00:29 /opt/software/frp_0.30.0_linux_amd64/frpc -c /opt/software/frp_0.30.0_linux_amd64/frpc.ini </code>CentOS7上监控客户端进程状态的脚本在frp 0.30版上不生效,此版本frpc进程信息里不包含frp/frpc,而是直接的frpc,
完整的是这样的:
不同版本的系统 ps显示的信息不一致,或者启动命令不同 需要按自己的情况修改