.Net Core实战教程(三):使用Supervisor配置守护进程
安装Supervisor
yum install python-setuptools
easy_install supervisor
配置Supervisor
mkdir /etc/supervisor echo_supervisord_conf > /etc/supervisor/supervisord.conf cd /etc/supervisor vim supervisord.conf
编辑supervisord.conf文件
配置启动路径,移动文件最后,找到:
;[include] ;files = relative/directory/*.ini
替换为:
[include] files=/etc/supervisor/conf.d/*.conf
配置启用管理界面功能,增加如下代码(这里默认不用输入用户名密码,当然也可以配置输入用户名,密码才能使用管理界面):
;以下内容开启http服务 [inet_http_server] port=192.168.3.162:9001
保存并退出
配置dotnet启动
cd /etc/supervisor/
mkdir conf.d
cd conf.d
touch myapi.conf
vim myapi.conf
编辑myapi.conf文件(根据你自己的实际情况书写):
[program:myapi] command=/bin/bash -c "dotnet myapi.dll" ; 运行程序的命令 directory=/root/mytest/ ; 应用程序所在目录 stderr_logfile=/var/log/myapi.err.log ; 错误日志文件 stdout_logfile=/var/log/myapi.out.log ; 输出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量 user=root ; 进程执行的用户身份 stopsignal=INT autostart=true ; 是否自动启动 autorestart=true ; 程序意外退出是否自动重启 startsecs=3 ; 自动重启间隔时间秒
保存并退出
如果有多个dotnet需要守护,这里需要写多份配置文件。
运行Supervisor
supervisord -c /etc/supervisor/supervisord.conf
supervisorctl reload
查看Supervisor管理界面
查看管理界面,浏览器中输入刚刚配置的IP与端口:http://192.168.3.162:9001
发现自己的dotnet进程已经正常启动了。当然这还不够,我们还需要让Supervisor开机自动启动。
设置开机自动启动
cd /usr/lib/systemd/system/
touch supervisord.service
vim supervisord.service
编辑supervisord.service文件:
[Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
保存并退出
启动
systemctl enable supervisord
验证一下是否为开机启动:
systemctl is-enabled supervisord
重启电脑看看是否开机可以自动开启你的dotnet进程。
精心准备,转载请留下原文地址。