Linux – What are pending signals

linuxprocesssignalsulimit

When looking at the limits of a running process, I see

Max pending signals       15725
  • What is this?
  • How can I determine a sensible value for a busy service?

Generally, I can't seem to find a page that explains what each limit is. Some are pretty self-explanatory (max open files), some less so (max msgqueue size).

Best Answer

According to the manual page of sigpending:

sigpending() returns the set of signals that are pending for delivery to the calling thread (i.e., the signals which have been raised while blocked).

So, it is meant the signals (sigterm, sigkill, sigstop, ...) that are waiting until the process comes out of the D (uninterruptible sleep) state. Usually a process is in that state when it is waiting for I/O. That sleep can't be interrupted. Even sigkill (kill -9) can't and the kernel waits until the process wakes up (the signal is pending for delivery so long).

For the other unclear values, I would take a look in the manual page of limits.conf.