laravel的Redis队列监听中断

码农天地 -
laravel的Redis队列监听中断

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用户自定义信号1SIGUSR231,12,17A用户自定义信号2SIGCHLD20,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、结论
nohup命令问题,命令启动后直接关闭终端还是无法后台运行,直接就终止了队列监听命令,队列监听命令的父进程PPID为被转换成root的ID1,推荐使用setsid命令:

setsid php artisan queue:listen --timeout=0 --tries=1 >> queue.log
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

后端phplavarel

扩展阅读

加个好友,技术交流

1628738909466805.jpg