我将从我的用例开始,因为我很可能没有使用正确的工具来完成这项工作.如果我以错误的方式解决这个问题,请告诉我
原文链接:/centos/373599.html用例:我有一个托管多个网络应用的CentOS服务器.我希望能够相信我的Web服务器和应用程序服务器将会运行.我的堆栈看起来像
> web服务器:Nginx
>应用服务器:uWSGI
> web框架:flask / python
我想使用supervisord来监控Nginx和uWSGI.在我的/etc/supervisor.conf中,我有
[program:Nginxgo] command = /usr/sbin/Nginx autostart=true autorestart=unexpected exitcodes=0 stdout_logfile=/home/webdev/Nginxgo.log stderr_logfile=/home/webdev/Nginxgoerr.log [program:uwsgi_emperor_go] command = uwsgi --emperor /etc/uwsgi/emperor.ini autostart=true autorestart=unexpected stopsignal=INT stdout_logfile=/home/webdev/emp.log stderr_logfile=/home/webdev/emperr.log directory=/home/webdev/ user=webdev
我启动了uWSGI流程.当我输入[root @ mymachine]#/usr/local / bin / supervisord -n -c /etc/supervisord.conf时
输出是
2014-11-26 14:07:56,917 CRIT Supervisor running as root (no user in config file) 2014-11-26 14:07:56,951 CRIT Server 'inet_http_server' running without any HTTP authentication checking 2014-11-26 14:07:56,952 INFO supervisord started with pid 31068 2014-11-26 14:07:57,957 INFO spawned: 'Nginxgo' with pid 31071 2014-11-26 14:07:57,970 INFO spawned: 'uwsgi_emperor_go' with pid 31072 2014-11-26 14:07:59,095 INFO success: Nginxgo entered RUNNING state,process has stayed up for > than 1 seconds (startsecs) 2014-11-26 14:07:59,095 INFO success: uwsgi_emperor_go entered RUNNING state,process has stayed up for > than 1 seconds (startsecs) 2014-11-26 14:08:00,601 INFO exited: Nginxgo (exit status 1; not expected) 2014-11-26 14:08:01,607 INFO spawned: 'Nginxgo' with pid 31079 2014-11-26 14:08:02,684 INFO success: Nginxgo entered RUNNING state,process has stayed up for > than 1 seconds (startsecs) 2014-11-26 14:08:04,189 INFO exited: Nginxgo (exit status 1; not expected) 2014-11-26 14:08:05,194 INFO spawned: 'Nginxgo' with pid 31080 2014-11-26 14:08:06,264 INFO success: Nginxgo entered RUNNING state,process has stayed up for > than 1 seconds (startsecs) 2014-11-26 14:08:07,771 INFO exited: Nginxgo (exit status 1; not expected) 2014-11-26 14:08:08,775 INFO spawned: 'Nginxgo' with pid 31081 2014-11-26 14:08:09,808 INFO success: Nginxgo entered RUNNING state,process has stayed up for > than 1 seconds (startsecs) 2014-11-26 14:08:11,314 INFO exited: Nginxgo (exit status 1; not expected) 2014-11-26 14:08:12,319 INFO spawned: 'Nginxgo' with pid 31082 2014-11-26 14:08:13,381 INFO success: Nginxgo entered RUNNING state,process has stayed up for > than 1 seconds (startsecs) 2014-11-26 14:08:14,886 INFO exited: Nginxgo (exit status 1; not expected) ^C2014-11-26 14:08:15,601 INFO spawned: 'Nginxgo' with pid 31083 2014-11-26 14:08:15,603 WARN received SIGINT indicating exit request 2014-11-26 14:08:15,611 INFO waiting for Nginxgo,uwsgi_emperor_go to die 2014-11-26 14:08:16,738 INFO success: Nginxgo entered RUNNING state,process has stayed up for > than 1 seconds (startsecs) 2014-11-26 14:08:18,242 INFO exited: Nginxgo (exit status 1; not expected) 2014-11-26 14:08:19,244 INFO waiting for uwsgi_emperor_go to die 2014-11-26 14:08:21,607 INFO stopped: uwsgi_emperor_go (exit status 0)
看看它是怎么说的
2014-11-26 14:07:59,process has stayed up for > than 1 seconds (startsecs)
但它开始只是循环Nginxgo过程.我用CTRL-C杀死了supervisord实例,我在htop中看到Nginx主进程和工作进程都是活动的.
我想要的是在服务器启动/重启或任一程序失败时启动Nginx和我的uWSGI emperor