• .Net Core Linux部署之进程守护 Supervisor 安装配置


    1.Supervisor 安装

    //安装easy_install
    yum install python-setuptools
    //安装Supervisor
    easy_install supervisor

    2.配置 Supervisor

    //创建配置文件
    mkdir /etc/supervisor
    echo_supervisord_conf > /etc/supervisor/supervisord.conf
    //指定配置文件
    supervisord -c /etc/supervisor/supervisord.conf
    //打开配置文件
    vim /etc/supervisor/supervisord.conf
    //在最后增加配置
    [include]
    files=conf.d/*.conf
    

      

    3.程序进程配置

    //创建配置文件目录
    mkdir /etc/supervisor/conf.d/
    //新建配置文件
    vim /etc/supervisor/conf.d/testdotnetcore.conf
    

    testdotnetcore.conf文件中写入以下内容:

    [program:testdotnetcore]
    command=dotnet TestDotNetCore.dll
    directory=/www/test/
    environment=ASPNETCORE__ENVIRONMENT=Production
    user=root
    stopsignal=INT
    autostart=true
    autorestart=true
    startsecs=1
    stderr_logfile=/var/log/testdotnetcore.err.log
    stdout_logfile=/var/log/testdotnetcore.out.log
    

    说明:

    [program:testdotnetcore]
    //要执行的命令
    command=dotnet TestDotNetCore.dll 
    //命令执行的目录
    directory=/www/test/ 
    //环境变量
    environment=ASPNETCORE__ENVIRONMENT=Production
    //进程执行的用户身份
    user=root
    stopsignal=INT
    //是否自动启动
    autostart=true
    //是否自动重启
    autorestart=true
    //自动重启间隔
    startsecs=1
    //标准错误日志
    stderr_logfile=/var/log/testdotnetcore.err.log
    //标准输出日志
    stdout_logfile=/var/log/testdotnetcore.out.log
    

      保存退出,并执行:

    //重新加载配置
    supervisorctl reload
    

    到此程序应该已经启动。

    4.设置开机启动

    //打开文件
    vim /lib/systemd/system/supervisord.service
    

    文件中写入以下命令: 

    [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
    

      说明:

    [Unit]
    //服务描述
    Description=Supervisor daemon
    //描述服务类别
    After=rc-local.service
    [Service]
    //设置进程的启动类型, 必须设为 simple, forking, oneshot, dbus, notify, idle 之一
    //如果设为 forking , 那么表示 ExecStart= 进程将会在启动过程中使用 fork() 系统调用
    Type=forking
    //ExecStart 启动命令
    ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
    //ExecStop 停止命令
    ExecStop=/usr/bin/supervisorctl shutdown
    //ExecReload 重启命令
    ExecReload=/usr/bin/supervisorctl reload
    //设置在单元停止时,杀死进程的方法。 取值范围如下: control-group, process, mixed, none
    //process 表示仅杀死主进程
    KillMode=process
    //当服务进程正常退出、异常退出、被杀死、超时的时候, 是否重新启动该服务
    //对于需要长期持续运行的守护进程, 推荐设为 on-failure 以增强可用性
    Restart=on-failure
    //重启服务前暂停多长时间
    //默认值是100毫秒(100ms)。 如果未指定时间单位,那么将视为以秒为单位
    RestartSec=30s
    [Install]
    WantedBy=multi-user.target
    

      更多说明参考:http://www.jinbuguo.com/systemd/systemd.service.html

     http://www.jinbuguo.com/systemd/systemd.kill.html

     

    保存退出并执行:

    //设置开机启动
    systemctl enable supervisord.service
    //查看设置是否生效
    systemctl is-enabled supervisord.service
    

      

    5.其它辅助

    //关闭所有任务
    supervisorctl shutdown
    //启动所有进程
    supervisorctl start all
    //停止所有进程
    supervisorctl stop all
    //启动某一个特定进程,program-name为[program:xx]中的xx
    supervisorctl start program-name
    //停止某一个特定进程,program-name为[program:xx]中的xx 
    supervisorctl stop program-name  
    //重启所有
    supervisorctl restart all
    //重启某一进程,program-name为[program:xx]中的xx
    supervisorctl reatart program-name
    //查看所有任务状态
    supervisorctl status
    //查看报错日志
    more /var/log/testdotnetcore.err.log
    //查看运行日志
    more /var/log/testdotnetcore.out.log
    

    文章出处:http://www.cnblogs.com/anech/p/6836231.html

      

  • 相关阅读:
    unity调用Android的两种方式:其二,调用aar包
    Unity调用Android的两种方式:其一、调用jar包
    使用 Gradle 编译 Java 项目时报错: Could not find Tools.jar
    Unity CommandInvokationFailure: Failed to re-package resources. 解决方案
    Unity Android路径及注意事项
    Unity Debug类
    Unity C#集合
    Unity C# const与static readonly的区别与联系
    Unity 脚本中各种[XXX]的用法
    unity 看到Sphere内部,通过Sphere播放全景视频时候遇到的问题
  • 原文地址:https://www.cnblogs.com/anech/p/6836231.html
Copyright © 2020-2023  润新知