我已经使用PHP的PCNTL扩展有一段时间了,但是不能弄清楚pcntl_signal()
的restart_syscalls
参数是什么。我试着在网上搜索,但找不到任何信息。所有的文档都说:
"指定当此信号到达时是否应该使用系统调用重新启动。"
什么是"系统调用重启"?
假设您编写的信号处理程序使用以下信号来停止进程:
- SIGTERM:终止进程;它可以被阻塞、处理和忽略,不像SIGKILL。
- SIGKILL:立即终止进程
- SIGSTOP:将进程暂停在当前状态
restart_syscalls
表示当signo
到达时是否需要重启系统调用。signo
的例子是我上面列出的三个,还有更多。
这意味着,如果restart_syscalls
被设置为默认值TRUE,这将在被信号signo
停止的进程之后重新启动某些系统调用。它使用一个时间参数重新启动被中断的系统调用,该参数经过适当调整以考虑已经经过的时间。
我把你推荐给这个非常简单明了的例子:pcntl_wait没有被SIGTERM打断