什么是待处理信号?

Bar*_*lom 9 linux process signals ulimit

在查看正在运行的进程的限制时,我看到

Max pending signals       15725
Run Code Online (Sandbox Code Playgroud)
  • 这是什么?
  • 如何确定繁忙服务的合理值?

一般来说,我似乎找不到解释每个限制是什么的页面。有些是不言自明的(最大打开文件),有些则不那么明显(最大 msgqueue 大小)。

cha*_*aos 6

按照手册页sigpending

sigpending() 返回等待传递给调用线程的信号集(即,在阻塞时已引发的信号)。

因此,这意味着等待进程退出D(不间断睡眠)状态的信号(sigterm、sigkill、sigstop 等)。通常,进程在等待 I/O 时处于该状态。那个睡眠不能被打扰。甚至 sigkill( kill -9) 也不能,内核一直等到进程唤醒(信号等待传递这么长时间)。

对于其他不清楚的价值观,我会采取在看看手册页limits.conf