Top:推荐使用pipinstallsupervisor安装最新版本的supervisor,yuminstallsupervisor最高版本为3.1.4。有很多bug名称解释supervisor:要安装的软件的名称。supervisord:supervisor软件安装后,supervisord用于启动supervisor服务。supervisorctl:用于管理supervisor配置文件中的程序。使用yum安装yuminstallepel-releaseyuminstallsupervisorsystemctlenablesupervisord.service#开机自启动systemctlstartsupervisord.service#启动supervisord服务systemctlstatussupervisord.service#查看supervisord服务状态#开启web服务:修改supervisord.conf,inet_http_server节点取消注释。vim/etc/supervisord.confsupervisorctlreload[inet_http_server];inet(TCP)服务器默认禁用port=*:9001;(ip_address:portspecifier,*:portforalliface)username=clark;(默认为无用户名(开放服务器))密码=123456;(默认为无密码(开服务器))ps-ef|grepsupervisord#查看是否有supervisord进程应用配置supervisor管理应用进程,需要为每个应用配置。在/etc/supervisord.d中创建helloworld.ini,每个应用对应一个配置文件。下面是一个配置文件的例子:[program:helloworld];程序名command=dotnetHelloWorld.dll;执行命令directory=/root/www/;命令执行目录environment=ASPNETCORE__ENVIRONMENT=Production;环境变量user=root;执行进程的用户stopsignal=INTautostart=true;是否autorestart=true;是否自动重启startssecs=1;自动重启间隔stderr_logfile=/var/log/helloworld.err.log;标准错误日志stdout_logfile=/var/log/helloworld.out.log;标准输出日志实际项目:supervisordeployment:cd/etc/supervisord.d/vimproduct_new_merchant.ini[program:product_new_merchant]user=rootdirectory=/root/data_hub/all_scriptcommand=/root/.virtualenvs/ProductNewMerchant/bin/python3.7product_new_merchant.pyautostart=trueautorestart=truestartsecs=1environment=MYSQL_HOST="192.168.6.160",MYSQL_DATABASE="xxxxx",MYSQL_USER_NAME="xxxxxx",MYSQL_PASSWORD="xxxxx",MYSQL_PORT=3306,192.168.95.55",LANG="en_US.utf8",LC_ALL="en_US.UTF-8",LC_LANG="en_US.UTF-8"stdout_logfile=/var/log/product_new_merchant.logredirect_stderr=truestopsignal=INT创建配置文件后,重启Supervisorsupervisorctlreload或热重启,不会重启其他子进程supervisorctlrereadsupervisorctlupdate确保没有错误,可以正常启动,使用上面提到的查看Supervisor状态的命令查看或者查看需要管理的进程是否启动。在此示例中,您可以使用以下命令:ps-ef|grepHelloWorld.dll或ps-ef|grepdotnet可能出现的问题1.我在网页上tail的时候,是不是一直不返回,或者是ErrorresponseErrorcode410.Message:Gone.2,stderr_logfile和stdout_logfile是反的3.中文乱码web界面参考:https://www.crifan.com/upgrad...3.1.4旧版本,升级最新版本[root@web-95-55admin]#supervisord--version3.1.4备份yum版本supervisor配置文件参考:yumremovesupervisoryumremovepython-meld3pipinstallsupervisormkdir/etc/supervisorecho_supervisord_conf>/etc/supervisor/supervisord.confvim/etc/supervisor/supervisord.conf修改应用配置文件路径:;[include]files=/etc/supervisor/config.d/*.inimkdir/etc/supervisor/config.dcd/etc/supervisor/config.d启动supervisor:supervisord-c/etc/supervisor/supervisord.conf附:公司运维小哥笔记yuminstallsupervisor-ysupervisor配置说明这种形式安装的supervisor的配置文件目录位于:/etc/supervisord.conf(主配置文件,下面会详细介绍)/etc/supervisor.d/(默认的子进程配置文件,也就是我们需要根据程序配置的地方)[unix_http_server]file=/home/supervisor/supervisor.sock;supervisorctl使用的socket文件的路径;chmod=0700;默认套接字文件权限0700;chown=没有人:没有群组;套接字文件的所有者[inet_http_server];提供web管理后台管理相关配置port=0.0.0.0:9001;web管理后台运行的IP地址和端口,绑定外网需要考虑安全;用户名=根;web管理后台登录用户名和密码;密码=root[supervisord]logfile=/var/log/supervisord.log;日志文件,默认为$CWD/supervisord.loglogfile_maxbytes=50MB;日志限制大小,超过则生成新文件,0表示不限制logfile_backups=10;默认日志备份数为10,0表示不备份loglevel=info;日志级别pidfile=/home/supervisor/supervisord.pid;监督pid文件;默认supervisord.pid;pid文件nodaemon=false;是否在前台启动,默认后台启动falseminfds=1024;可以打开的文件描述符的最小值minprocs=200;可开启进程的最小值[supervisorctl]serverurl=unix:///home/supervisor/supervisor.sock;通过socket连接supervisord,路径与unix_http_server->文件配置一致[include]files=supervisor.d/*.conf;指定在当前目录的supervisor.d文件夹下配置多个配置文件定义Supervisor管理进程配置文件[program:sboot];[program:xxx]其中xxx指的是工程名directory=/opt/project;程序所在目录command=java-jarspringboot-hello-sample.jar;程序启动命令autostart=true;是否跟随supervisord启动autorestart=true;程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程被意外杀死后重启stopasgroup=true;当进程被杀死时,是否向该进程组发送停止信号,包括子进程killasgroup=true;向进程组发送kill信号,包括子进程Processstdout_logfile=/var/log/sboot/supervisor.log;程序日志输出文件,目录需要手动创建stdout_logfile_maxbytes=50MB;日志大小stdout_logfile_backups=100;backupnumberservicesupervisordrestart直接在命令行输入supervisorctl会显示当前配置好的项目信息[root@wangzhsupervisor.d]#supervisorctlsbootRUNNINGpid27517,uptime0:18:04supervisor>然后就可以执行start/stop/重启sboot简单控制项目的启停等supervisorctlupdate#更新配置文件supervisorctlreload#重启配置程序supervisorctlstopall#停止所有管理进程参考:1.https://www.chengxulvtu.com/s...2.https://blog.csdn.net/DongGeG...
