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

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

    安装Supervisor

     1  yum install python-setuptools

     2   easy_install supervisor

    配置Supervisor

     3  mkdir /etc/supervisor

     4  echo_supervisord_conf > /etc/supervisor/supervisord.conf

     5 上面语句执行完后就能在/etc/supervisor 文件夹下找到文件 supervisord.conf 如图

    下面我们要将文件的结尾部分替换掉以便后面能读取到我们的配置文件

    在文件的结尾找到以下

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

    将代码替换为如下,注意前后不能带 ;和空格符号

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

    6 进入目录 /etc/supervisor/ 新建 conf.d文件夹,conf.d文件夹下新建 myproject.conf文件

       具体内容如下,注意命令执行的目录要写你项目文件所在的目录,两个日志文件的名称最好也统一改一下

    [program:myproject]
    command=dotnet myproject.dll ; 运行程序的命令
    directory=/root/mypro/ ; 命令执行的目录
    autorestart=true ; 程序意外退出是否自动重启
    stderr_logfile=/var/log/myproject.err.log ; 错误日志文件
    stdout_logfile=/var/log/myproject.out.log ; 输出日志文件
    environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
    user=root ; 进程执行的用户身份
    stopsignal=INT
    

      

    运行supervisord并查看

    7  supervisord -c /etc/supervisor/supervisord.conf 

    8  ps -ef | grep myproject  # 这行命令是查看有关myproject的所有进程 ,【注意】myproject是上面 program:myproject 的命名 ,如果你看到如下图 ,说明运行成功,如果没有成功可以看上面配置的那个错误日志文件

    9  supervisorctl reload  #最后重新载入配置

    下面整理一些关于 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都不会自动重启

    温馨提示:如果要结束当前应用程序的进程必须先结束守护进程,不然应用程序是kill不掉的,因为它已经会自动重启了,我们可以 先用命令

    ps -ef | grep supervisord

    ​ 查出所有守护进程相关的进程 ,然后找到对应的守护进程再用 命令

    kill -9 pid    # -9 为强制执行

      结束进程,最后才能kill掉我的应用进程。

    详细参考: http://www.cnblogs.com/zhaopei/p/netcore.html

    本文永久更新地址:http://siyouku.cn/article/6861.html

    asp.net core 开发框架:https://github.com/2014fighting/CodeFrame.Web.git

     
  • 相关阅读:
    EF之Model First
    easyui报错 Cannot read property 'length' of null
    EF迁移报错An operation was scaffolded that may result in the loss of data. Please review the migration for accuracy.
    Vue脚手架搭建
    [LeetCode No.20] 有效的括号
    爬虫-给女朋友的每日天气预报
    [LeetCode No.316] 去除重复字母
    [LeetCode No.738] 单调递增的数字
    [LeetCode No.49] 字母异味词分组
    [LeetCode No.34] 在排序数组中查找元素的第一个和最后一个位置
  • 原文地址:https://www.cnblogs.com/fighting2014/p/8004704.html
Copyright © 2011-2022 走看看