• 程序守护服务 Supervisor


    一、什么是Supervisor?

         Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

    二、安装Superviser  安装路径/usr/bin/supervisord,配置文件/etc/supervisor.conf

    yum install python-setuptools
    
    easy_install supervisor

    三、配置Supervisor

    mkdir /etc/supervisor
    
    echo_supervisord_conf > /etc/supervisor/supervisord.conf

      修改supervisord.conf文件,将文件尾部的配置

    ;[include]
    ;files=relative/directory/*.ini
    修改为:

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

    四、配置Asp.NET Core的应用的守护

      1)在 /etc/supervisor/conf.d 创建一个TestApi.conf文件

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

     2)

    supervisord -c /etc/supervisor/TestApi.conf
    
    ps -ef | grep TestApi

    运行supervisord,查看是否生效

    五、错误解析

     1)Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting

        解决方法 

    find / -name supervisor.sock
    
    unlink /name/supervisor.sock
  • 相关阅读:
    树莓派学习记录
    ESP8266
    城轨列控系统
    VMware+CentOS7学习记录
    眼镜
    调试蜂鸣器驱动电路
    假期作业进度6
    假期作业进度5
    假期作业进度4
    假期作业进度3
  • 原文地址:https://www.cnblogs.com/xiaoyaodijun/p/9791530.html
Copyright © 2020-2023  润新知