一、创建frps.sh脚本
#!/bin/bash if [ ! $1 ]; then echo '缺乏参数:restart|start|stop|status 中的任何一个' exit 1 fi getFrpPID () { frpPID=$(netstat -nlp | grep frp | awk '{print $7}' | awk -F "/" '{print $1}' | awk '!a[$0]++{print $0}') return $frpPID } # 停止Frp进程 stopFrp () { frpPID=$(netstat -nlp | grep frp | awk '{print $7}' | awk -F "/" '{print $1}' | awk '!a[$0]++{print $0}') if [ ! "$frpPID" ]; then echo '当前无Frp内网穿透程序运行' else kill -9 "$frpPID" echo "关闭Frp内网穿透进程【$frpPID】" fi } # 启动Frp进程 startFrp () { if [ ! -d "/www/server/frp/frp_0.38.0_linux_386" ]; then echo '缺乏目录:/www/server/frp/frp_0.38.0_linux_386' exit 1 fi frpPID=$(netstat -nlp | grep frp | awk '{print $7}' | awk -F "/" '{print $1}' | awk '!a[$0]++{print $0}') if [ ! $frpPID ]; then # 进入frp目录 cd /www/server/frp/frp_0.38.0_linux_386 # 守护进程运行frp nohup ./frps -c ./frps.ini > nohup.out 2>&1 & echo '=====启动中,耐心等待=====' sleep 4s statusFrp else echo "当前已存有Frp【$frpPID】内网穿透进程,如果想重启请使用restart参数" fi } statusFrp () { frpPID=$(netstat -nlp | grep frp | awk '{print $7}' | awk -F "/" '{print $1}' | awk '!a[$0]++{print $0}') if [ ! $frpPID ]; then echo '当前无Frp内网穿透程序运行' else echo "Frp内网穿透程序正在进行中:进程PID【$frpPID】" fi } case $1 in start) startFrp ;; stop) stopFrp ;; restart) stopFrp startFrp ;; status) statusFrp ;; *) echo '参数错误:请输入参数restart|start|stop|status 中的任何一个' esac
二、使用
# 启动 sh frps.sh start # 停止 sh frps.sh stop # 重启 sh frps.sh restart # 查看运行状态 sh frps.sh status
来源:https://www.csdn.net/tags/OtDaYgxsMjkzMzgtYmxvZwO0O0OO0O0O.html