I know that you can connect to various background processes to watch their console output, but is there a way to view the output of all processes at once? Likely it would scroll quickly and be hard to read, but is it possible?
Well, you can spawn several processes in your shell in the background and then (if they all use their stdout or stderr) you can get lots of information intermingled in the console - and by intermingled I mean it can possibly even mix data from several processes in the middle of a line.
What you are probably looking for is logging to a file (system services usually use something in
/var/log) and then viewing the file(s). There are couple of utilities for this:
tail (important option
-F, which monitors the file and prints any lines added),
less can (in the follow mode) do the same interactively (i.e. you can switch back and forth between following the file and scrolling back).
most is another interesting file pager utility,
more is the "classic" one found almost everywhere (even on DOS and Windows).
Last but not the least,
tee might be of interest - it duplicates its stdin to stdout and to a file, which can often come in handy.
If they all write to a logfile, you can use multitail to tail them all simultaneously.
All processes? Most background processes actually intentionally close their file descriptors, and there's no easy way to grab them back or force the process to recognize a new one.
You can watch all the messages to syslog, as others have said, and a lot of user-spawned processes do actually have their output directed somewhere (at least, if you're running a sane X startup environment), so you can watch a lot of them if you know what files to look at. But for the most part, you can't see the output of ALL non-user processes because they simply don't have anywhere defined to send output.