supervisor 笔记

1. 安装supervisor
$ sudo dnf install supervisorhtml

2. 配置supervisor
安装完supervisor后,输入如下命令可获得配置文件:
echo_supervisord_conf > /etc/supervisord.confvim

在etc下建立目录,并赋权限
mkdir -m 700 -p /etc/supervisor浏览器

在目录“ /etc/supervisor”下建立配置文件
echo_supervisord_conf > /etc/supervisor/supervisord.conf工具

修改配置文件
vim /etc/supervisor/supervisord.conf测试

在文件末尾添加,注意首尾需无空格,需顶格
[include]
files=/etc/supervisor/conf.d/*.conf
在目录“/etc/supervisor”下建立dotnet core 进程配置文件存放目录“conf.d”
mkdir -m 700 /etc/supervisor/conf.dspa

3. 配置应用.net

在/ect/supervisor/conf.d/ 目录下新建一个配置文件(touch HelloWebApp.conf),取名为 HelloWebApp.conf命令行

打开HelloWebApp.conf (vim HelloWebApp.conf),写入以下命令:
[program:xiuya]
command=dotnet xiuya.dll #要执行的命令
directory=/home/code/xiuya/bin/Release #命令执行的目录
environment=ASPNETCORE__ENVIRONMENT=Production #环境变量
user=www-data #进程执行的用户身份
stopsignal=INT
autostart=true #是否自动启动
autorestart=true #是否自动重启
startsecs=1 #自动重启间隔
stderr_logfile=/var/log/xiuya.err.log #标准错误日志
stdout_logfile=/var/log/xiuya.out.log #标准输出日志rest

4. 运行日志

sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf

若是启动的时候报错,能够打开位于/etc/log/supervisor/supervisord.log文件来查看具体的日志。

其中dotnet 命令输出的日志文件分别为位于

/var/log/HelloWebApp.err.log
/var/log/HelloWebApp.out.log
在这些文件里面你能够查看程序中的异常信息或者是运行信息。

打开浏览器,输入 http://localhost:5000 发现已经能够浏览了。


5. Supervisor UI 管理台

Supervisor 默认给咱们提供了一个图形界面来供咱们管理进程和任务,在 macOS 中默认配置的有,可是在 Linux 中咱们须要手动开启一下。

打开位于/etc/supervisor/supervisord.conf文件,添加inet_http_server 节点
而后就能够经过界面来查看运行的进程了:

测试一下

最后,咱们测试一下是否会自动重启,开机自动运行?

一、进程管理中干掉dot net ,发现能够从新启动。如下是日志:

2016-07-09 12:24:18,626 INFO spawned: 'HelloWebApp' with pid 1774
2016-07-09 12:24:19,766 INFO success: HelloWebApp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 12:27:43,208 INFO exited: HelloWebApp (exit status 0; expected)
2016-07-09 12:27:44,223 INFO spawned: 'HelloWebApp' with pid 3687
2016-07-09 12:27:45,243 INFO success: HelloWebApp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
二、重启机器,发现能够自动运行。

 

 

6. supervisorctl管理

Supervisord安装完成后有两个可用的命令行supervisor和supervisorctl,命令使用解释以下:

supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
supervisorctl stop programxxx,中止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon。
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop groupworker: ,重启全部属于名为groupworker这个分组的进程(start,restart同理)
supervisorctl stop all,中止所有进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,中止原有进程并按新的配置启动、管理全部进程。
supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
注意:显示用stop中止掉的进程,用reload或者update都不会自动重启。

 

 

 

 

参考资料:

ASP.NET Core Linux下为 dotnet 建立守护进程(必备知识) - Savorboard - 博客园

https://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html

supervisor安装部署文档和管理实例
https://blog.csdn.net/shanliangliuxing/article/details/15499891

Supervisor安装与配置(Linux/Unix进程管理工具) - 技术改变生活 - CSDN博客

https://blog.csdn.net/xyang81/article/details/51555473

相关文章
相关标签/搜索