• Supervisor守护进程安装配置


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

    执行下面的命令,安装python。

    yum install python-setuptools

    easy_install supervisor

    在/etc/目录下,创建supervisor文件夹。

    mkdir /etc/supervisor

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

    echo_supervisord_conf > /etc/supervisor/supervisord.conf

    修改/etc/supervisor/supervisord.conf文件内容,在文件中找到[include],把;去掉,把files = ./conf.d/*.conf

    [include]

    files=./conf.d/*.conf

    然后,在conf.d目录中,创建一个名为helloworld.conf的文件,配置如下:

    [program: ProjectName]

    command=dotnet helloworld.dll ; 运行程序的命令

    directory=/wwwroot/demo/ ; 命令执行的目录

    autorestart=true ; 程序意外退出是否自动重启

    autostart=true ; 是否自动启动

    stderr_logfile=/var/log/ProjectName.err.log ; 错误日志文件

    stdout_logfile=/var/log/ProjectName.out.log ; 输出日志文件

    environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量

    user=root ; 进程执行的用户身份

    stopsignal=INT startsecs=1 ; 自动重启间隔

    上面是以.net core程序为例,创建一个守护进程的配置。

    接下来,指定supervisor配置文件:

    supervisord -c /etc/supervisor/supervisord.conf

    配置supervisor开机启动

    sudo systemctl start supervisord.service

    sudo systemctl enable supervisord.service

    如果出现unit未找到,则可以手动创建一个service文件,进入/lib/systemd/system目录,并创建supervisor.service文件

    [Unit]

    Description=supervisor

    After=network.target

    [Service]

    Type=forking

    ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf

    ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown

    ExecReload=/usr/bin/supervisorctl $OPTIONS reload

    KillMode=process

    Restart=on-failure

    RestartSec=42s

    [Install]

    WantedBy=multi-user.target

    systemctl enable supervisor.service

    systemctl daemon-reload

    supervisorctl 操作

    supervisorctl 是 supervisord 的命令行客户端工具,使用的配置和 supervisord 一样,这里就不再说了。下面,主要介绍 supervisorctl 操作的常用命令:

    输入命令 supervisorctl 进入 supervisorctl 的 shell 交互界面(还是纯命令行),就可以在下面输入命令了。:

    help # 查看帮助

    status # 查看程序状态

    stop program_name # 关闭 指定的程序

    start program_name # 启动 指定的程序

    restart program_name # 重启 指定的程序

    tail -f program_name # 查看 该程序的日志

    update # 重启配置文件修改过的程序(修改了配置,通过这个命令加载新的配置)

    也可以直接通过 shell 命令操作;

  • 相关阅读:
    js联系题目
    js运算符
    太极图
    第一周 Welcome
    对 vscode 自动格式化的结果不太满意,我们该如何自己调整直至自己满意为止
    ASP.NET MVC5.0 OutputCache不起效果
    对照实验(1)-批量清理系统临时文件
    ES6
    19.局部变量和全局变量
    18.函数定义和参数
  • 原文地址:https://www.cnblogs.com/shiyige-216/p/14642445.html
Copyright © 2020-2023  润新知