PHP PCNTL-pcntl_signal()的Restart_syscalls参数有什么作用?

2022-03-07 00:00:00 signals php pcntl

我使用PHP的PCNTL extension已经有一段时间了,但是不知道pcntl_signal()restart_syscalls参数做什么。我试着在互联网上四处寻找,但找不到任何信息。所有文档都说:

"指定此信号到达时是否应使用系统调用重新启动。"

什么是"系统调用重新启动"?


解决方案

假设您将信号处理程序编程为使用以下信号停止进程:

  • SIGTERM:要终止进程,它可以被阻止、处理和忽略,这与SIGKILL不同。
  • SIGKILL:立即终止进程
  • SIGSTOP:暂停进程的当前状态

restart_syscalls指定signo到达时是否使用系统调用重启。signo的示例是上面列出的三个示例,还有更多示例。

这意味着,如果restart_syscalls设置为默认值true,这将在被信号signo停止的进程之后重新启动某些系统调用。它使用适当调整的时间参数重新启动中断的系统调用,以说明已经过去的时间。

我将您转到这个简单明了的示例:pcntl_wait not interrupted by SIGTERM

相关文章