ASP.NET Core应用程序发布linux在putty中运行是正常的。可一但putty关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题
安装 Supervisor 及配置 Supervisor
1.yum install python-setuptools2.easy_install supervisor ?#安装Supervisor3.mkdir /etc/supervisor4.echo_supervisord_conf > /etc/supervisor/supervisord.conf ?#配置 Supervisor
4.配置
cd /etc/supervisorls
supervisord.conf文件
5. 文件的最后
;[include];files = relative/directory/*.ini
改成(【注意】去掉;且不能有空格)
[include]files = conf.d/*.conf
6.进入目录 /etc/supervisor/
新建 conf.d
文件夹,conf.d
文件夹下新建 netcoreDemo.conf
文件
内容(【注意】看 第二行 第三行的 注释,根据实际名字填入)
mkdir /etc/supervisor/conf.d ???--创建conf.d文件夹lscd conf.dvi netcore.conf ???--创建netcore文件并且向里面添加内容
[program:netcore]command=dotnet mhqtalks.dll ; (注意)运行程序的命令directory= /home/netCore/ ; (注意 注意)对应的你的项目的存放目录,这个地方好多初学者搞错!!!autorestart=true ; 程序意外退出是否自动重启stderr_logfile=/var/log/WebApplication1.err.log ; 错误日志文件stdout_logfile=/var/log/WebApplication1.out.log ; 输出日志文件environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量user=root ; 进程执行的用户身份stopsignal=INT
运行supervisord并查看
7 ?supervisord -c /etc/supervisor/supervisord.conf
8 ?ps -ef | grep netcore ?# 这行命令是查看有关netcore的所有进程 ,【注意】netcore是上面 program:netcore 的命名 ,如果你看到如下图 ,说明运行成功,如果没有成功可以看上面配置的那个错误日志文件
9 ?supervisorctl reload ?#最后重新载入配置
配置Supervisor开机启动
打开目录 /usr/lib/systemd/system/
新建文件 supervisord.service
内容:
# dservice for systemd (CentOS 7.0+)# by ET-CS (https://github.com/ET-CS)[Unit]Description=Supervisor daemon[Service]Type=forkingExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.confExecStop=/usr/bin/supervisorctl shutdownExecReload=/usr/bin/supervisorctl reloadKillMode=processRestart=on-failureRestartSec=42s[Install]WantedBy=multi-user.target
执行命令:
systemctl enable supervisord ?systemctl is-enabled supervisord #来验证是否为开机启动
到此,完工。现在重新电脑什么都不用管,直接可以访问部署好的网站。
下面整理一些关于 Supervisor 的命令 ,参考链接https://segmentfault.com
命令 | 说明 |
---|---|
supervisord | 初始启动Supervisord,启动、管理配置中设置的进程 |
supervisorctl stop myproject | 停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon |
supervisorctl start myproject | 启动某个进程 |
supervisorctl restart myproject | 重启某个进程 |
supervisorctl stop groupworker | 重启所有属于名为groupworker这个分组的进程(start,restart同理) |
supervisorctl stop all | 停止全部进程,注:start、restart、stop都不会载入最新的配置文件 |
supervisorctl reload | 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程 |
supervisorctl update | 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。注意:显示用stop停止掉的进程,用reload或者update都不会自动重启 |
温馨提示:如果要结束某个守护进程,我们可以 ps -ef | grep supervisord 查出所有守护进程相关的进程
然后再用 kill -9 pid 结束进程
ASP.NET Core 发布 centos7 配置守护进程
原文地址:https://www.cnblogs.com/mhq-martin/p/8639166.html