supervisor 部署
supervisor 部署
一、Centos 下安装.Net sdk 5.x-7.0
二、安装 supervisor
解释一些让人容易疑惑名词
- supervisor:要安装的软件的名称。
- supervisord:装好 supervisor 软件后,supervisord 用于启动 supervisor 服务。
- supervisorctl:用于管理 supervisor 配置文件中 program。
方法一、使用 yum 命令安装(推荐)
$ sudo su - #切换为root用户
yum install epel-release
yum install -y supervisor
##下面命令在这里暂时先不要使用
# systemctl enable supervisord # 开机自启动
# systemctl start supervisord # 启动supervisord服务
# systemctl status supervisord # 查看supervisord服务状态
# ps -ef | grep supervisord # 查看是否存在supervisord进程
安装完成后在/etc目录下有以下文件
三、编辑相关配置文件
创建 supervisor 配置文件
- 1、创建 supervisor 所需目录
mkdir /etc/supervisor #用来存储 supervisor 的配置文件以及开机启动文件等等...
mkdir /etc/supervisord.d #用来存储应用程序/服务所需的目录(如果没有则创建该目录)
- 2、创建 supervisor 配置文件(可选默认是在/etc 目录下有一个配置文件)
通常安装好 supervisor 后会生成一个配置文件,在/etc/supervisord.conf
, 这里我们使用默认配置文件
提示
也可以使用以下命令保存到指定的目录
echo_supervisord_conf > /etc/supervisor/supervisord.conf
根据实际要求修改以下内容 vim /etc/supervisord.conf
[unix_http_server]
file=/var/run/supervisor/supervisor.sock
...
[supervisord]
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
...
[include]
files = supervisord.d/*.ini ;应用服务配置文件存储路径
注意
高亮行对应
- 2、添加应用配置文件
文件目录 /etc/supervisord.d/conf.d
新建文件:vim zradmin.ini
添加以下代码
[program:zradmin]
command=dotnet ZR.Admin.WebApi.dll ; 运行程序的命令
directory= /home/website/zradmin/publish ; 应用程序发布目录
autorestart=true ; 程序意外退出是否自动重启
startsecs=5 ;5秒自动重启
;stderr_logfile=/var/log/supervisor/zradmin.err.log ; 错误日志文件
redirect_stderr=true
stdout_logfile=/var/log/supervisor/zradmin.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
[program:zradmin] 表示程序运行在 supervisor 里面的名字,用于关闭开启程序使用
注意
- 1、修改此配置文件后要重新 update 配置文件,不然一直会使用上次的配置文件
- 2、stderr_logfile/stdout_logfile 后面的文件夹路径如果需要加自定义路径一定要保证文件目录存在,否则启动不了应用程序
四、配置 supervisor 开机启动
在上面建好的目录 /etc/supervisor/
里面增加一个“supervisord.service”文件 注意:ExecStart 启动方式路径注意修改 安装后如果没有此配置文件执行以下操作
# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
将文件拷贝至:“/usr/lib/systemd/system/supervisord.service”
执行命令:systemctl enable supervisord
执行命令:systemctl is-enabled supervisord
#来验证是否为开机启动
五、服务启动与关闭
1、启用 supervisor,-c 指定让其读取的配置文件
[root@localhost /]supervisord -c /etc/supervisord.conf
启动 supervisor 扩展
- supervisord #使用默认的配置文件启动,即
/etc/supervisord.conf
- supervisord -u user # 使用 user 用户启动 supervisord
- supervisord -c /etc/supervisord.conf #指定配置文件启动,推荐使用
说明
supervisord 启动成功后,可以通过 supervisorctl 客户端控制进程,启动、停止、重启。运行 supervisorctl 命令,不加参数,会进入 supervisor 客户端的交互终端,并会列出当前所管理的所有进程。
2、关闭 supervisor
supervisorctl shutdown
3、重新加载 supervisor 配置文件,并重启 superivisor
重新启动配置中的所有程序 supervisorctl reload
4、添加或删除配置文件更新
配置文件修改后使用该命令加载新的配置 supervisorctl update
5、管理 supervisorctl 应用程序的服务
启动所有
supervisorctl start all
supervisorctl start service_name
停止所有程序
supervisorctl stop all
supervisorctl stop service_name
查看应用状态
supervisorctl status #查看所有服务
supervisorctl status [服务名]
重新启动所有服务或者是某个服务 #重启所有
supervisorctl restart all #重启指定服务名
supervisorctl restart service_name
图像化管理应用程序
- 图形界面管理应用服务
编辑 supervisor.conf
配置文件,把注释打开,里面的 port 地址最好改成内外。
[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))
输入地址访问