zoukankan      html  css  js  c++  java
  • ASP.NET Core 发布 centos7 配置守护进程

    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管理界面等等。

    CentOS7下Supervisor安装与配置(Linux/Unix进程管理工具)

    友情提示

    作者: mhq_martin

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

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

  • 相关阅读:
    javascript window.Event对象
    sql 命令
    ASP.NET 2.0实现防止同一用户同时登陆
    设计模式(抽象工厂模式)
    javascript幻灯片
    javascript window.open
    c# 注册表操作
    大话英语
    oracle 插入、合并、查询、聚合操作
    guy,mistake
  • 原文地址:https://www.cnblogs.com/mhq-martin/p/8639166.html
Copyright © 2011-2022 走看看