From reading the standard, I understand that:

  • signal handling is a property shared by all threads of a process;
  • signal mask is a per-thread property.

However, the standard list the following (In 2018 edition of Base volume, section 3.210 Live Process) as "system resource shared among all of the threads within a process":

  • process ID, parent process ID, process group ID, session membership,
  • real, effective, and saved user and group IDs and supplementary group IDs,
  • current working directory, root directory,
  • umask,
  • file descriptors.

with signal handling missing from the list.

Is it correct to say that: signal handling is a property associated with the process? Or is there a reason it's left out of the above list?

1 Answer 1


The answer is yes: Signal handling is shared among all threads in a process.

The reason it's "left out" from the list is that signal handlers are not really a "property" or a "resource" of a process. You can't see it anywhere in /proc<pid>/. It's like saying that functions, global variables, or memory in general, are a "shared property" of a process - it's just part of a definition of what a "process" is.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .