Signal queue depth in Linux

signals

How many signals can be queued on a process that has all signals blocked? What if I use sigqueue() more often then that limit? Will those signals not be queued? Will I get an error?

Best Answer

With ulimit

$ ulimit -a |grep signals 
  pending signals                 (-i) 62384

With plain C

$ cat<<EOF > siglimit.c
#include <stdio.h>
#include <unistd.h>
int main() { printf("%ld\n", sysconf( _SC_SIGQUEUE_MAX)); return 0; }
EOF
$ gcc siglimit.c && ./a.out
62384

You may, of course, get a value other than 62384, which is what I got on my system.

Related Question