页面“About me”与“Supervisor基础”之间的差异
(页面间的差异)
跳到导航
跳到搜索
第1行: | 第1行: | ||
− | + | = 常识= | |
− | + | Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制 | |
− | |||
− | |||
− | |||
− | |||
− | < | + | =lx= |
+ | <pre> | ||
+ | php-worker]# cat supervisord.conf | ||
+ | [supervisord] | ||
+ | logfile=/tmp/supervisord.log ; main log file; default $CWD/supervisord.log | ||
+ | logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB | ||
+ | logfile_backups=10 ; # of main logfile backups; 0 means none, default 10 | ||
+ | loglevel=debug ; log level; default info; others: debug,warn,trace | ||
+ | pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid22 | ||
+ | nodaemon=true | ||
+ | user=www-data | ||
+ | [supervisorctl] | ||
+ | [inet_http_server] | ||
+ | port = *:9001 | ||
+ | #username="yourusername" | ||
+ | #password="yourpass" | ||
+ | [rpcinterface:supervisor] | ||
+ | supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface | ||
− | |||
− | [ | + | [include] |
+ | files = /var/www/api.sns.cai.com/supervisord.d/production1.*.conf /var/www/apistatistical.cai.com/supervise/production1.*.conf | ||
+ | |||
+ | #from laradock | ||
+ | tree supervisord.d/ | ||
+ | supervisord.d/ | ||
+ | ├── laravel-worker.conf.example | ||
+ | └── monitor-mail.conf | ||
+ | |||
+ | |||
+ | |||
+ | </pre> | ||
+ | |||
+ | =以tomcat 举例= | ||
+ | <pre> | ||
+ | |||
+ | Tomcat进程的一个例子: | ||
+ | |||
+ | [program:tomcat] | ||
+ | command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run | ||
+ | stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out | ||
+ | autostart=true | ||
+ | autorestart=true | ||
+ | startsecs=5 | ||
+ | priority=1 | ||
+ | stopasgroup=true | ||
+ | killasgroup=true | ||
+ | |||
+ | |||
+ | bash终端 | ||
+ | |||
+ | supervisorctl status | ||
+ | supervisorctl stop tomcat | ||
+ | supervisorctl start tomcat | ||
+ | supervisorctl restart tomcat | ||
+ | supervisorctl reread | ||
+ | supervisorctl update | ||
+ | |||
+ | |||
+ | 开机启动Supervisor服务 | ||
+ | 7.1 配置systemctl服务 | ||
+ | |||
+ | 1> 进入/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 | ||
+ | |||
+ | 2> 设置开机启动 | ||
+ | |||
+ | systemctl enable supervisor.service | ||
+ | systemctl daemon-reload | ||
+ | |||
+ | 3、修改文件权限为766 | ||
+ | |||
+ | chmod 766 supervisor.service | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
+ | |||
+ | =trouble shooting= | ||
+ | |||
+ | 求助!supervisord 报错 FATAL Exited too quickly (process log may have details) | ||
+ | |||
+ | entered FATAL state, too many start retries too quickly | ||
+ | |||
+ | 我 user 改成 root 之后可以了 | ||
+ | |||
+ | =see also= | ||
+ | |||
+ | [https://blog.csdn.net/xyang81/article/details/51555473 Supervisor安装与配置(Linux/Unix进程管理工具)] | ||
+ | |||
+ | [https://www.cnblogs.com/xueweihan/p/6195824.html supervisor 安装、配置、常用命令] | ||
+ | |||
+ | |||
+ | |||
+ | [https://blog.csdn.net/shuyun123456789/article/details/51153961 Supervisor重新加载配置启动新的进程] | ||
+ | |||
+ | [https://www.jianshu.com/p/0226b7c59ae2 Supervisor的作用与配置] | ||
+ | |||
+ | [https://www.cnblogs.com/jasonkoo/articles/3750638.html supervisord简介,配置及使用] | ||
+ | |||
+ | |||
+ | [https://www.liaoxuefeng.com/article/895919885120064 Linux后台进程管理利器:supervisor] | ||
+ | |||
+ | |||
+ | [https://imwz.io/run-horizon-by-supervisord-in-laradock/ Run Horizon by Supervisord in Laradock] | ||
+ | |||
+ | [[category:ops]] |
2020年6月29日 (一) 08:27的版本
常识
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制
lx
php-worker]# cat supervisord.conf [supervisord] logfile=/tmp/supervisord.log ; main log file; default $CWD/supervisord.log logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB logfile_backups=10 ; # of main logfile backups; 0 means none, default 10 loglevel=debug ; log level; default info; others: debug,warn,trace pidfile=/tmp/supervisord.pid ; supervisord pidfile; default supervisord.pid22 nodaemon=true user=www-data [supervisorctl] [inet_http_server] port = *:9001 #username="yourusername" #password="yourpass" [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [include] files = /var/www/api.sns.cai.com/supervisord.d/production1.*.conf /var/www/apistatistical.cai.com/supervise/production1.*.conf #from laradock tree supervisord.d/ supervisord.d/ ├── laravel-worker.conf.example └── monitor-mail.conf
以tomcat 举例
Tomcat进程的一个例子: [program:tomcat] command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out autostart=true autorestart=true startsecs=5 priority=1 stopasgroup=true killasgroup=true bash终端 supervisorctl status supervisorctl stop tomcat supervisorctl start tomcat supervisorctl restart tomcat supervisorctl reread supervisorctl update 开机启动Supervisor服务 7.1 配置systemctl服务 1> 进入/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 2> 设置开机启动 systemctl enable supervisor.service systemctl daemon-reload 3、修改文件权限为766 chmod 766 supervisor.service
trouble shooting
求助!supervisord 报错 FATAL Exited too quickly (process log may have details)
entered FATAL state, too many start retries too quickly
我 user 改成 root 之后可以了
see also
Supervisor安装与配置(Linux/Unix进程管理工具)