zoukankan      html  css  js  c++  java
  • linux centos Supervisor守护.netcore进程安装配置

     场景:当部署完.netcore程序后 使用dotnet xx.dll 后可以运行,但关闭shell或隔断时间会自动断开,此时部署的.netcore程序就不能访问了,此时需要用到Supervisor了

     Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

    1、安装Python

    yum install python-setuptools
    easy_install supervisor

    2、新建supervisor文件夹

    mkdir /etc/supervisor

    3、在该目录下,生成supervisord.conf文件

    echo_supervisord_conf > /etc/supervisor/supervisord.conf

    4、新建conf.d文件夹

    mkdir /etc/supervisor/conf.d

    此时的目录结构:

    5、编辑supervisord.conf文件,在文件中末尾添加

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

    6、在conf.d中添加文件test.conf

    文件内容:

    [program:testservice] ;程序名称,终端控制时需要的标识
    command=dotnet test2.dll ; 运行程序的命令
    directory=/home/website/test/ ; 命令执行的目录
    autorestart=true ; 程序意外退出是否自动重启
    stderr_logfile=/var/log/testservice.err.log ; 错误日志文件
    stdout_logfile=/var/log/testservice.out.log ; 输出日志文件
    environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
    user=root ; 进程执行的用户身份
    stopsignal=INT
    startsecs=1 ; 自动重启间隔

    7、指定supervisor配置文件

    supervisord -c /etc/supervisor/supervisord.conf

    8、Supervisor开机自启动

    在目录/usr/lib/systemd/system 中新建文件supervisord.service

    文件内容:

    #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

    9、使配置生效

    systemctl daemon-reload

      重启supervisor服务
       $ supervisorctl reread
       如果重启的时候报错: 
       error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567
       则说明服务尚未启动,先启动即可:
       sudo supervisord -c /etc/supervisor/supervisord.conf
       sudo supervisorctl -c /etc/supervisor/supervisord.conf
       如果修改了 /etc/supervisord.conf ,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。

    10、设置服务开机启动

    systemctl enable supervisor.service

     11、验证一下是否为开机启动

    systemctl is-enabled supervisord

     12、启动服务

    systemctl start supervisor.service

    至此完成

    参考文章:

    https://www.cnblogs.com/hobinly/p/7382038.html

    https://my.oschina.net/lichaoqiang/blog/1861791

    https://www.cnblogs.com/sundahua/p/9149692.html

    https://blog.csdn.net/chivalrousli/article/details/60324140

  • 相关阅读:
    js将UTC时间转化为当地时区时间 用JS将指定时间转化成用户当地时区的时间
    elementUI里面,用tabs组件导致浏览器卡死的问题
    根据数组对象中的属性值删除对象
    js货币金额正则表达式
    vue elementui input不能输入的问题
    vue+elementui--$message提示框被dialog遮罩层挡住问题解决
    Oracle日期函数
    plsql查询报错:Dynamic Performamnce Tables not accessible
    Oracle rownum和rowid的区别
    Oracle通过序列实现主键自增长
  • 原文地址:https://www.cnblogs.com/xiao-sheng/p/11627748.html
Copyright © 2011-2022 走看看