linux-supervisor守护进程

来源:互联网 发布:淘宝几心怎么看 编辑:程序博客网 时间:2024/06/05 10:00

环境: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)02dcommand=nohup /data/appadmin/app_admindirectory=/data/appadmin     ##程序的目录地址最好要添加,要不然会报错,找不到路径autostart=trueautorestart=trueuser=rootnumprocs=1redirect_stderr=truestdout_logfile=/etc/supervisor/logs/appadmin.log  #日志文件

一切准备完毕后 执行

supervisord -c /etc/supervisor/supervisord.conf 

启动supervisor,即可完成程序的持续运行!

运行 supervisorctl命令即可查看程序的运行状态

[root@appadmin conf.d]# supervisorctlappadmin:appadmin_00             RUNNING   pid 2375, uptime 0:26:40supervisor> 

一些supervisor的常用命令

重载supervisor进入supervisor 命令-->  #supervisorctl查看命令           -->  #help重载项目           -->  #reload查看状态           -->  #status完成!

二、设置supervisor开机自起:

重启服务器后,发现supervisor开机启动,于是只好手动添加脚本 实现开机启动

编辑sh文件并给予权限

[root@centos]# vi /etc/rc.d/sh/appadmin.sh #!/bin/bash# 开机启动supervisorsupervisord -c /etc/supervisor/supervisord.confchmod +x /etc/rc.d/sh/appadmin.sh 

编辑/etc/rc.d/rc.local 加入开机启动

[root@appadmin conf.d]# vi /etc/rc.d/rc.local #!/bin/bashtouch /var/lock/subsys/local#开机启动supervisor脚本/etc/rc.d/sh/appadmin.shchmod +x /etc/rc.d/rc.local 

重启服务器后,即可看到已经有 app_admin在运行中。

至此,所有操作进行完毕

原创粉丝点击