求助!supervisord 报错 FATAL Exited too quickly (process log may have details)

2014-07-17 16:15:22 +08:00
 fxl12345
环境:centos 6.4
监控进程:
[program:httpd]
command=/usr/sbin/httpd
numprocs=1
autostart=true
autorestart=true
startretries=10
stopsignal=KILL
stopwaitsecs=10
redirect_stderr=true
stdout_logfile=/home/http.log

启动脚本:
#! /bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin

PROGNAME=supervisord

DAEMON=/usr/bin/$PROGNAME

CONFIG=/etc/$PROGNAME.conf

PIDFILE=/tmp/$PROGNAME.pid

DESC="supervisord daemon"

SCRIPTNAME=/etc/init.d/$PROGNAME

# chkconfig: 2345 08 92
#
# description: Automates a packet filtering firewall withip
#
# Gracefully exit if the package has been removed.

test -x $DAEMON || exit 0



start()

{

echo -n "Starting $DESC: $PROGNAME"

$DAEMON -c $CONFIG

echo "..."

}

stop()

{

echo -n "Stopping $DESC: $PROGNAME"

supervisor_pid=$(cat $PIDFILE)

kill -15 $supervisor_pid

echo "..."

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

*)

echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2

exit 1

;;

esac

exit 0


求大神告知错误在哪?
45810 次点击
所在节点    问与答
12 条回复
jerry74
2014-07-17 17:46:39 +08:00
我猜應該是port 1024以下權限不足
加user=root
[program:httpd]
command=/usr/sbin/httpd
user=root
numprocs=1
autostart=true
autorestart=true
startretries=10
stopsignal=KILL
stopwaitsecs=10
redirect_stderr=true
stdout_logfile=/home/http.log


在不行的話貼log吧...
fxl12345
2014-07-17 18:36:04 +08:00
@jerry74
supervisord.log :
2014-07-17 18:28:40,731 INFO spawned: 'httpd' with pid 25023
2014-07-17 18:28:40,733 INFO spawned: 'py' with pid 25024
2014-07-17 18:28:40,767 INFO exited: httpd (exit status 1; not expected)
2014-07-17 18:28:40,777 INFO gave up: httpd entered FATAL state, too many start retries too quickly

httpd.log:
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
fxl12345
2014-07-17 18:47:10 +08:00
@jerry74
1.httpd.log提示的80端口被占用,但是我感觉是supervisor不停给开启这个进程所造成的。
2.supervisor对监控的进程是有具体哪些要求的?
fityme
2014-07-17 18:54:08 +08:00
@fxl12345 supervisor本身会创建一个进程,然后保存这个pid来作后续的操作,所以在开始用supervisor管理之前需要先手动把现存的进程全杀掉。不知道你是不是这种情况。然后,我还遇到过的情况是,用uwsgi启动Django进程,用配置文件就多开了好几个,用命令行参数就没问题。。。具体原因没找到。。。
fxl12345
2014-07-17 19:25:28 +08:00
@fityme
1.试过在supervisor管理之前kill掉,启动supervisord会启动我监控的进程,ps-ef里可以看到,但还是出现标题的报错。
2.我也同样遇到你说的那个问题,监控系统管理进程,出现大量一样的进程,原因也没有找到。
3.监控/sbin/mingetty /dev/tty1
RUNNING pid 26842, uptime 0:00:05
raptium
2014-07-17 20:16:51 +08:00
httpd 是个 daemon
supervisord 是用来跑前台程序的
raptium
2014-07-17 20:19:50 +08:00
command 写 httpd -D FOREGROUND 应该就好了
fityme
2014-07-17 23:22:32 +08:00
@raptium 好像就是这个原因,万分感谢!
fxl12345
2014-07-19 11:12:38 +08:00
@raptium
1.嗯,有什么办法可以让它监控后台程序么?因为我需要的进程都是在后台进行的。
superchaowen
2016-01-02 23:05:39 +08:00
我也遇到这个问题,启动进程没起来,不断的启动后台进程
superchaowen
2016-01-02 23:10:15 +08:00
我是跑在虚拟机上面的,而且是以 shell 方式跑 java 进程啊
xx19941215
2018-10-09 10:15:15 +08:00
entered FATAL state, too many start retries too quickly

我 user 改成 root 之后可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/123152

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX