pcntl_async_signals 与 pcntl_wait 的配合使用
在处理 linux 系统中的信号时,pcntl_async_signals 和 pcntl_wait 两个函数经常被同时使用。但是,在某些情况下,这两个函数同时使用时可能会出现问题。
问题描述
如下所示的代码中,server::start() 方法使用 pcntl_async_signals(true) 启用异步信号处理,然后使用 pcntl_wait 阻塞父进程。但是,当父进程接收到 sigterm 信号时,mastertermhandler 信号回调函数并没有被调用。
private function start() { pcntl_async_signals(true); // ... pcntl_wait($status); }
登录后复制
原因分析
问题的根源在于 pcntl_signal 函数的第三个参数,它默认设置为 true。这意味着,当父进程接收到信号时,程序不会被中断,也不会调用信号回调函数。
解决方法
要解决此问题,需要将 pcntl_signal 函数的第三个参数设置为 false。这将使程序在接收到信号时立即调用信号回调函数。
修改后的代码如下:
private function start() { pcntl_async_signals(true); // ... pcntl_signal(SIGTERM, [$this, 'masterTermHandler'], false); }
登录后复制
通过此修改,mastertermhandler 信号回调函数将能够在父进程接收到 sigterm 信号时立即被调用。
以上就是## 使用 pcntl_async_signals 和 pcntl_wait 时,为什么 SIGTERM 信号回调函数没有被调用?的详细内容,更多请关注抖狐科技其它相关文章!
-
手机的大底传感器有哪些
大底传感器是指面积超过1/1.28英寸的手机相机传感器。大底传感器的优势包括:光线捕捉能力强,图像更明亮、噪点更少景深较浅,背景虚化效果好动态范围宽,图像细节丰富手机大底传感器 手机大底传感器是指面积...
-
《三角洲行动》彩蛋全部汇总
三角洲行动彩蛋大揭秘:《三角洲行动》中潜藏着众多令人惊喜的彩蛋,不仅让游戏更添乐趣,更助你轻松获取奖励。php小编香蕉特此奉上彩蛋全揭秘,带领你开启探索之旅,挖掘游戏中的隐藏宝藏!《三角洲行动》彩蛋汇...
-
如鸢天机符传有什么用 揭秘天机符的神奇功效
想要了解鸢天机符传的神奇功效吗?php小编子墨为您揭秘!鸢天机符传作为一款备受玩家喜爱的游戏,它的天机符系统有着独特的神奇功效。究竟这些功效是什么?又如何发挥其作用?文章将一一为您详解,引导您深入探索...
-
《光遇》9.18每日任务怎么做
光遇9.18每日任务攻略每日任务是《光遇》中玩家的日常必做任务,完成任务可获得丰富的奖励。想知道9.18的每日任务如何完成吗?本文由php小编西瓜为您带来详细攻略,不仅带您轻松完成任务,更可顺路获取季...
-
为什么都用折叠屏手机
随着技术的成熟,折叠屏手机受到欢迎的原因包括:展开时更大的显示面积,带来沉浸式体验。折叠时体积小巧,便于携带。屏幕可折叠和展开,提供多场景使用。展开可提升生产力,像平板电脑一样工作。独特的外观设计,满...