美文网首页
Systemd+Supervisord

Systemd+Supervisord

作者: JustinZhang_ | 来源:发表于2023-08-18 16:36 被阅读0次
    • Supervisord由root用户启动,由Systemd管理,开机自启动;
    • 由Supervisord管理的程序自行决定由哪一用户启动;

    安装Supervisord

    # 解压
    tar -xzvf setuptools-68.1.2.tar.gz
    tar -xzvf supervisor-4.2.5.tar.gz
    # 安装
    sudo python/python3 setuptools-68.1.2/setup.py install
    sudo python/python3 supervisor-4.2.5/setup.py install
    # 验证
    supervisord -v
    

    Supervisord添加到Systemd

    • 使用root用户操作
    • 创建文件及目录
    mkdir -p /var/lib/supervisord
    mkdir -p /var/log/supervisord
    mkdir -p /etc/supervisord
    touch /etc/supervisord.conf
    
    • supervisord配置文件
    [unix_http_server]
    file = /var/lib/supervisord/supervisord.sock
    chmod = 0755
    chown = root:root
    ;username = root
    ;password = root
    
    [inet_http_server]
    port = 127.0.0.1:9999
    username = root
    password = root
    
    [supervisord]
    logfile = /var/log/supervisord/supervisord.log
    logfile_maxbytes = 32MB
    logfile_backups = 5
    loglevel = info
    pidfile = /var/lib/supervisord/supervisord.pid
    nodaemon = false
    minfds = 1024
    minprocs = 200
    umask = 022
    user = root
    identifier = supervisord
    directory = /var/lib/supervisord
    nocleanup = false
    childlogdir = /tmp
    strip_ansi = false
    
    [supervisorctl]
    serverurl = unix:///var/lib/supervisord/supervisord.sock
    ;username = root
    ;password = root
    prompt = supervisor
    
    [include]
    files = /etc/supervisord/*.conf /home/justin/Service/supervisor_conf/*.conf
    
    [rpcinterface:supervisor]
    supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
    
    • 启动命令
    supervisord -c /etc/supervisord.conf
    
    • 添加到Systemd
    # 创建脚本
    touch /usr/lib/systemd/system/supervisord.service
    # 脚本内容
    [Unit]
    Description=Supervisor daemon
    
    [Service]
    Type=forking
    ExecStart=/usr/bin/python3 /usr/local/bin/supervisord -c /etc/supervisord.conf
    ExecStop=/usr/bin/python3 /usr/local/bin/supervisorctl $OPTIONS shutdown
    KillMode=process
    Restart=on-failure
    RestartSec=42s
    
    [Install]
    WantedBy=multi-user.target
    
    • 开机自启动
    systemctl enable supervisord.service
    systemctl start/stop/status supervisord.service
    

    Supervisord管理服务

    • 普通用户的服务的配置文件放置在/home/justin/Service/supervisor_conf目录下
    • 系统用户的服务的配置文件放置在/etc/supervisord目录下
    • 一般要求服务前台启动
    • 示例配置文件如下
    [program:zookeeper]
    directory=/home/justin/Service/zookeeper-3.6.4
    command=/home/justin/Service/zookeeper-3.6.4/bin/zkServer.sh start-foreground
    autostart=false
    autorestart=false
    stopasgroup=true
    killasgroup=true
    user=justin
    stdout_logfile=/home/justin/Service/zookeeper-3.6.4/logs/zoo_out.log
    stdout_logfile_maxbytes=16MB
    stdout_logfile_backups=2
    redirect_stderr=true
    environment=JAVA_HOME="/home/justin/.sdkman/candidates/java/current"
    

    相关文章

      网友评论

          本文标题:Systemd+Supervisord

          本文链接:https://www.haomeiwen.com/subject/fcjdmdtx.html