我有一个php写的脚本需要常驻内存,于是使用supervisor进行管理,后来由于进程运行时间长了以后会出现假死的情况,所以就改成进程在无事可做的时候就退出,然后让supervisor再拉起来,起到重启进程的作用。这么想的然后就这么做了,不过昨天实施的,今天发现进程还是挂了,这次是彻底挂了,没有被拉起来,并且在supervisor的日志里发现了以下错误:
INFO gave up: php_user_profile_02 entered FATAL state, too many start retries too quickly
由于我设计的是没有任务就直接退出,然后再由supervisor拉起来,所以如果在一段时间内都没有任务的话,那么进程将在被拉起后立刻退出,这样频繁的操作在supervisor中是有限制的,我再网上查到的是说默认会尝试3次,然后就不会再尝试拉起进程,而且会报错。这个我在查看配置文件的时候确实发现了这个设置:
;startretries=3 ; max # of serial start failures (default 3)
默认尝试3次。
参考: