(A UN*X signal:)
On Unix, Linux and the other Unixoids, not to mention POSIX.1 beloved of committees, SIGTTOU is the signal delivered to a process which tries to write to its controlling tty when in the background. It is sent to a process which tries to write to /dev/tty while its shell has decided to run it in the background. Unlike SIGTTIN, it usually makes perfect sense to let more than one process write to the same tty -- the characters just get jumbled up together in some manner.

Thus, the default action on receiving SIGTTOU is to ignore it. If you say "du &" at the shell prompt, du merrily runs in the background (and its output clobbers anything else you might have wanted to display in the meanwhile -- but that's your problem).

Nevertheless, some programs may wish not to clobber the user's display when running in the background. Of course, most such programs will be interactive curses-based (or ncurses-based or slang-based or ...) programs; these will anyway stop immediately on being run in the background, as they will try to read their terminal and receive SIGTTIN.

But it's considered polite for a program which plans to clobber some tty settings not to try to do it while running in the background. For instance, to generate SIGTTOU in the comfort of your own $HOME, try running more in the background:

[ariels@HumptyDumpty ~/Tests]$ more procs.c &
[4] 12265

[4]  + Suspended (tty output)        more procs.c
[ariels@HumptyDumpty ~/Tests]$ 
more politely asks the OS not to let it mess up my screen by suspending on SIGTTOU. On startup, it tries to do something which will mess up my screen -- so it gets stopped until I decide I'm ready for it and let it run in the foreground.

Log in or register to write something here or to contact authors.