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/

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

  • 相关阅读:
    nginx能访问html静态文件但无法访问php文件
    LeetCode "498. Diagonal Traverse"
    LeetCode "Teemo Attacking"
    LeetCode "501. Find Mode in Binary Search Tree"
    LeetCode "483. Smallest Good Base" !!
    LeetCode "467. Unique Substrings in Wraparound String" !!
    LeetCode "437. Path Sum III"
    LeetCode "454. 4Sum II"
    LeetCode "445. Add Two Numbers II"
    LeetCode "486. Predict the Winner" !!
  • 原文地址:https://www.cnblogs.com/mhq-martin/p/8639166.html
Copyright © 2011-2022 走看看