Supervisor部署frp程序

一、简介

Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,Supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

二、 安装

sudo pip install supervisor

supervisor安装完成后会生成三个执行程序:supervisordsupervisorctlecho_supervisord_conf,分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)、生成初始配置文件程序。

配置文件说明
supervisor配置文件:/etc/supervisor/supervisord.conf
子进程配置文件路径:/etc/supervisor/conf.d/

三、生成初始化配置文件

cd /etc
sudo mkdir supervisor
sudo touch /etc/supervisor/supervisord.conf
sudo chmod 777 /etc/supervisor/supervisord.conf
sudo echo_supervisord_conf > /etc/supervisor/supervisord.conf

四、编辑配置文件

sudo vim /etc/supervisor/supervisord.conf

在底部添加

[include]
files = /etc/supervisor/conf.d/*.conf

可选内容

将file=/tmp/supervisor.sock 修改为 file=/var/run/supervisor.sock
将logfile=/tmp/supervisord.log 修改为 logfile=/var/log/supervisor/supervisord.log
将pidfile 修改为 pidfile=/var/run/supervisord.pid
将serverurl=unix:///tmp/supervisor.sock 修改为 serverurl=unix:///var/run/supervisor.sock

五、 编辑程序运行配置文件

cd /etc/supervisor
sudo mkdir conf.d
sudo vim /etc/supervisor/conf.d/app.conf 

在底部添加

[program:frp]
command = /home/jetson/frp/frpc -c /home/jetson/frp/frpc.ini
autostart = true
startsecs = 5
startretries = 63072000
user = root
redirect_stderr = true
stdout_logfile = /home/jetson/log/frp.log
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 5
stdout_events_enable =true
stderr_logfile = /home/jetson/log/frp.log
stderr_logfile_maxbytes = 20MB
stderr_logfile_backups = 5

六、supervisor脚本文件

cd /etc/supervisor
sudo vim start_supervisor.sh
sudo supervisord -c /etc/supervisor/supervisord.conf  #启动 supervisord, 通过 -c 选项指定配置文件路径

sudo vim refresh_supervisor_conf.sh
sudo supervisorctl update  #配置文件修改后使用该命令加载新的配置
sudo supervisorctl reload  #重新启动配置中的所有程序

sudo chmod +x *.sh

七、开机启动设置

sudo vim /etc/crontab  #设置开机自启动

添加

@reboot root sh /etc/supervisor/start_supervisor.sh

开始运行


```bash
sh /etc/supervisor/start_supervisor.sh

sudo supervisorctl restart all

常用命令
supervisorctl status

supervisorctl stop frp

supervisorctl start frp

supervisorctl restart

supervisorctl update

supervisorctl reload

你可能感兴趣的:(Supervisor部署frp程序)