Supervisor进程管理实践

在linux中有些任务执行时需要将进程放在后台执行,而如果采用系统自带的命令启动后,那个运行窗口必须一直开着不能关闭,当关闭窗口时该进程就会终止,影响相关程序的运行。如果进程比较多的时候就显得更麻烦,需要开启多个运行窗口。在linux中管理进程的工具supervisor非常实用,下面来实践一下。

(1)Supervisor安装

在centos系统中安装时,使用root用户登录,然后直接使用yum install supervisor就行,不过如果使用阿里云镜像,还得升级一下epel-release.

[root@master ~]# yum install supervisor
、、、、
Installed:
  supervisor.noarch 0:3.1.4-1.el7                                                                                              

Dependency Installed:
  python-meld3.x86_64 0:0.6.10-1.el7                                                                                           

Complete!

安装成功后,就可以开启supervisor进程了。

[root@master ~]# systemctl enable supervisord
Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.
[root@master ~]# systemctl start supervisord
[root@master ~]# systemctl status supervisord
?supervisord.service - Process Monitoring and Control Daemon
   Loaded: loaded (/usr/lib/systemd/system/supervisord.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-02-13 22:39:49 CST; 9s ago
  Process: 130902 ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf (code=exited, status=0/SUCCESS)
 Main PID: 130903 (supervisord)
   CGroup: /system.slice/supervisord.service
           忖130903 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf

Feb 13 22:39:48 master systemd[1]: Starting Process Monitoring and Control Daemon...
Feb 13 22:39:49 master systemd[1]: Started Process Monitoring and Control Daemon.

此时可以使用进程查看命令ps来查看:

[root@master ~]# ps -ef | grep supervisor
root     130903      1  0 22:39 ?        00:00:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
root     131025 130863  0 23:03 pts/2    00:00:00 grep --color=auto supervisor

上述结果中第一个就是指向了运行的进程文件,/etc/supervisord.conf

(2)配置修改

使用vi命令打开/etc/supervisord.conf文件,进行相应的配置修改:

; Sample supervisor config file.

[unix_http_server]
file=/var/run/supervisor/supervisor.sock   ; (the path to the socket file)
;chmod=0700                 ; sockef file mode (default 0700)
;chown=nobody:nogroup       ; socket file uid:gid owner
;username=user              ; (default is no username (open server))
;password=123               ; (default is no password (open server))

;[inet_http_server]         ; inet (TCP) server disabled by default
;port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
;username=user              ; (default is no username (open server))
;password=123               ; (default is no password (open server))

修改该配置文件,可以开启web界面访问把,将[inet_http_server]模块的注释去掉,并修改IP、用户名与密码:

[inet_http_server]         ; inet (TCP) server disabled by default
port=0.0.0.0:9001        ; (ip_address:port specifier, *:port for all iface)
username=user              ; (default is no username (open server))
password=123               ; (default is no password (open server))

然后重启supervisor进程:

[root@master ~]# supervisorctl reload
Restarted supervisord

接下来就可以在外部浏览器访问了,在浏览器地址栏输入ip地址加端口号,会弹出输入用户名和密码框,按照刚才设置的用户名和密码输入后,点击登录:

可以看到目前还没有任何程序进程管理。接下来就可以添加一些进程了。添加进程时默认文件位置在:[include]
files = supervisord.d/*.ini,就是这个ini文件。新建一个ini文件,里面的格式如下:

[program:ProgramServer] ;ProgramServer程序名称,终端控制时需要的标识
command=dotnet ProgramServer.dll ; 运行程序的命令
directory=/root/文档/ProgramServer/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/ProgramServer.err.log ; 错误日志文件
stdout_logfile=/var/log/ProgramServer.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT

如果想管理hive进程,新建一个hive.ini文件,输入如下内容:

[root@master supervisord.d]# vi hive.ini
[program:hiveserver2]
user=hadoop
command=/home/hadoop/hive-3.1.2-bin/bin/hive --service hiveserver2
directory=/home/hadoop/hive-3.1.2-bin
autostart=true
autorestart=true

然后再刷新一下supervisor进程:

[root@master supervisord.d]# supervisorctl reload
Restarted supervisord

此时我们编辑的hive.ini应该启动了,如浏览器中刷新时看到的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值