linux-supervisor安装及使用讲解
程序员文章站
2022-07-08 18:24:18
环境:centos7.2
软件:supervisor
背景:
公司有一个app后台管理程序需要部署,该程序是用go语言编写的二进制文件,后台需要持续运行这个二进制文件,保证服...
环境:centos7.2
软件:supervisor
背景:
公司有一个app后台管理程序需要部署,该程序是用go语言编写的二进制文件,后台需要持续运行这个二进制文件,保证服务的持续运行。
方案 1:
直接采用 nohup ./app_admin &后台运行方式,该方式存在一个缺点,如果服务器重启后,或者程序运行出错的话,服务就会终止,这种方式不稳定。
方案 2:
采用supervisor进程管理方式守护go语言的二进制文件运行,保证程序的持续运行。
一、 安装supervisor
# yum install python-setuptools # easy_install pip # pip install supervisor -- 或者-- easy_install supervisor # mkdir /etc/supervisor/ 安装完成之后,在/etc/supervisor目录下生成配置文件 # echo_supervisord_conf>/etc/supervisor/supervisord.conf
如果需要卸载supervisor 执行 # pip uninstall supervisor
修改supervisor配置文件
vi /etc/supervisor/supervisord.conf
把末尾的include去掉;添加配置文件
[include] files = /etc/supervisor/conf.d/*.ini
conf.d文件夹中的app_admin.ini配置文件如下
[root@centos]# cat appadmin.ini [program:appadmin] process_name=%(program_name)s_%(process_num)02d command=nohup /data/appadmin/app_admin directory=/data/appadmin ##程序的目录地址最好要添加,要不然会报错,找不到路径 autostart=true autorestart=true user=root numprocs=1 redirect_stderr=true stdout_logfile=/etc/supervisor/logs/appadmin.log #日志文件
一切准备完毕后 执行
supervisord -c /etc/supervisor/supervisord.conf
启动supervisor,即可完成程序的持续运行!
运行 supervisorctl命令即可查看程序的运行状态
[root@appadmin conf.d]# supervisorctl appadmin:appadmin_00 RUNNING pid 2375, uptime 0:26:40 supervisor>
一些supervisor的常用命令
重载supervisor 进入supervisor 命令--> #supervisorctl 查看命令 --> #help 重载项目 --> #reload 查看状态 --> #status 完成!
二、设置supervisor开机自起:
重启服务器后,发现supervisor开机启动,于是只好手动添加脚本 实现开机启动
编辑sh文件并给予权限
[root@centos]# vi /etc/rc.d/sh/appadmin.sh #!/bin/bash # 开机启动supervisor supervisord -c /etc/supervisor/supervisord.conf chmod +x /etc/rc.d/sh/appadmin.sh
编辑/etc/rc.d/rc.local 加入开机启动
[root@appadmin conf.d]# vi /etc/rc.d/rc.local #!/bin/bash touch /var/lock/subsys/local #开机启动supervisor脚本 /etc/rc.d/sh/appadmin.sh chmod +x /etc/rc.d/rc.local
重启服务器后,即可看到已经有 app_admin在运行中。
至此,所有操作进行完毕