A comp.unix.shell newsgroup post asked a neophyte question about how to run a script in the background. The terse answer was, of course,
While perfectly correct, that leaves out so much. I started to write what I thought would be a more complete response, but quickly realized that there is an awful lot to cover, and some of it is pretty complicated. The new Unix user actually has a lot to learn about this.
There's the matter of controlling the output, the job priority, and interrupts. For more complex situations, process groups could be important. Job control is a whole subject by itself. It gets deep fast.
And to what purpose? Nowadays it is unusual for the average user to have any need of background processing: we just open another window. If we need to reduce priority (which is also pretty rare today), we "nice" the process in that window. Interrupts, process groups, job control: who cares?
I looked up "background process group" in Stevens "Advanced Programming in the Unix Environment" and took a trip down memory lane.. I haven't even thought about most of that in many years.
Probably only a few people have any need to know anything about this, and most of those only need it to pass a beginner computer science course. A very few tech people stuck doing support for ancient systems that only provide modem access may need to remember some of this now and then, but for the rest of us, it's almost completely dead.
When was the last time you needed shell background processing and why? I don't even own any modems anymore, but now and then I'll leave something running with "nohup" on some customer system.. but since everything runs so fast nowadays, that's pretty unusual too..
Got something to add? Send me email.
More Articles by Anthony Lawrence © 2010-10-27 Anthony Lawrence
There is no programming language, no matter how structured, that will prevent programmers from making bad programs. (Larry Flon)