Linux 自动监控FRP服务运行 | 后台运行FPR | 监控FRP

标签: none

本文重点讲一下 后台运行和程序崩溃恢复运行.

后台运行

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

客户端也要做相应处理,到此,完美解决了这个问题.再也不用担心我的内网穿透问题了.

FRP局域网穿透+linux自动监控服务运行


扫描二维码,在手机上阅读!

已有 2 条评论

  1. Andy Andy

    感谢博主清晰明了的指引。
    CentOS7上监控客户端进程状态的脚本在frp 0.30版上不生效,此版本frpc进程信息里不包含frp/frpc,而是直接的frpc,
    完整的是这样的:

    <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>
    1. 不同版本的系统 ps显示的信息不一致,或者启动命令不同 需要按自己的情况修改

添加新评论