• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NETCore发布centos7配置守护进程

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

ASP.NET Core应用程序发布linux在putty中运行是正常的。可一但putty关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题

安装 Supervisor 及配置 Supervisor

1.yum install python-setuptools
2.easy_install supervisor  #安装Supervisor
3.mkdir /etc/supervisor
4.echo_supervisord_conf > /etc/supervisor/supervisord.conf  #配置 Supervisor

4.配置

cd /etc/supervisor
ls

supervisord.conf文件

5. 文件的最后

;[include]
;files = relative/directory/*.ini

改成(【注意】去掉;且不能有空格)

[include]
files = conf.d/*.conf

6.进入目录 /etc/supervisor/ 新建 conf.d文件夹,conf.d文件夹下新建 netcore.conf文件
内容(【注意】看 第二行 第三行的 注释,根据实际名字填入)

mkdir /etc/supervisor/conf.d    --创建conf.d文件夹
ls
cd conf.d
vi netcore.conf    --创建netcore文件并且向里面添加内容

[program:netcore]
command=dotnet mhqtalks.dll ; (注意)运行程序的命令
directory= /home/netcore/mhqtalks/ ; (注意 注意)对应的你的项目的存放目录,这个地方好多初学者搞错!!!
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/netcore.err.log ; 错误日志文件
stdout_logfile=/var/log/netcore.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=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 #来验证是否为开机启动

到此,完工。现在重新电脑什么都不用管,直接可以访问部署好的网站。

下面整理一些关于 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   结束进程

【ps -ef |grep 输出的具体含义】:

  (1)ps -ef |grep+服务名来对于查询服务是否正常运行

  ps:将某个进程显示出来

 -A  显示所有程序。 

 -e  此参数的效果和指定"A"参数相同。

 -f  显示UID,PPIP,C与STIME栏位。 

 grep命令是查找

 中间的|是管道命令 是指ps命令与grep同时执行

 (2)那每一项具体表示的含义呢?从左往右依次表示为:UID       PID   PPID     C STIME   TTY    TIME     CMD

各相关信息的意义:

UID 程序被该 UID 所拥有

PID 就是这个程序的 ID 

PPID 则是其上级父程序的ID

C CPU 使用的资源百分比

STIME 系统启动时间

TTY 登入者的终端机位置

TIME 使用掉的 CPU 时间。

 CMD 所下达的指令为何

 

想详细学习一下supervisor的可以看一下底下的推荐文章,包括设置web管理界面等等。

友情提示

作者: mhq_martin

博客园地址: http://www.cnblogs.com/mhq-martin/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
在Asp.Net2.0中使用CssTabDesign样式美化菜单发布时间:2022-07-10
下一篇:
asp.netcore使用docker中的Exceptionless实现日志记录发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap