队列监听中断分析挂起

laravel中Redis队列监听中断的分析

编程开发 2020-10-15 07:43:07 28

导读

1、linxu挂起队列监听nohup php artisan queue:listen --timeout=90 --tries=1 >> /dev/null 2>&1 &2、发现问题(日志) In Process.php line 429: &nbs……

1、linxu挂起队列监听

nohup php artisan queue:listen --timeout=90 --tries=1 >> /dev/null 2>&1 &

2、发现问题(日志)

 In Process.php line 429:     
  The process has been sinaled with signal "1".

3、查询资料(linux信号中断)

 

标志信号值默认处理动作发出信号的原因
SIGHUP1A终端挂起或者控制进程终止
SIGINT2A键盘中断(如break键被按下)
SIGQUIT3C键盘的退出键被按下
SIGILL4C非法指令
SIGABRT6C由abort(3)发出的退出指令
SIGFPE8C浮点异常
SIGKILL9AEFKill信号
SIGSEGV11C无效的内存引用
SIGPIPE13A管道破裂: 写一个没有读端口的管道
SIGALRM14A由alarm(2)发出的信号
SIGTERM15A终止信号
SIGUSR130,10,16A用户自定义信号1
SIGUSR231,12,17A用户自定义信号2
SIGCHLD20,17,18B子进程结束信号
SIGSEGV19,18,25A进程继续(曾被停止的进程)
SIGSTOP17,19,23DEF终止进程
SIGTSTP18,20,24D控制终端(tty)上按下停止键
SIGTTIN21,21,26D后台进程企图从控制终端读
SIGTTOU22,22,27D后台进程企图从控制终端写

处理动作一项中的字母含义如下

A 缺省的动作是终止进程
B 缺省的动作是忽略此信号,将该信号丢弃,不做处理
C 缺省的动作是终止进程并进行内核映像转储(dump core),内核映像转储是指将进程数据在内存的映像和进程在内核结构中的部分内容以一定格式转储到文件系统,并且进程退出执行,这样做的好处是为程序员提供了方便,使得他们可以得到进程当时执行时的数据值,允许他们确定转储的原因,并且可以调试他们的程序。
D 缺省的动作是停止进程,进入停止状况以后还能重新进行下去,一般是在调试的过程中(例如ptrace系统调用)
E 信号不能被捕获
F 信号不能被忽略

3、验证问题:

根据日志提示的信号值1,对应资料中的说明 终端挂起或者控制进程终止, 调用nohup时指向日志,不使用&后台运行,然后直接关闭终端日志中出现上述的错误提示,问题显然是终端被终止, 更进一步要找的为什么后台运行的命令会被终止。

4、结论

待进一步测试。


1253067 TFnetwork_cn