(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.