Advanced Programming in the UNIX® Environment

(lily) #1
ptg10805159

302 Process Relationships Chapter 9


background
process group(s)

foreground
process group

login shell

login

exec

gettyor
telnetd
exec,aftersetsid,then
establishing controlling terminal

init,inetd,orlaunchd

user at a
terminal

terminal
driver

terminal-generated signals(SIGINT

,SIGQUIT

,SIGTSTP

)

delivered to process group

terminal input/output

read from terminal
generates

SIGTTIN

write to terminal may
generate

SIGTTOU
tcsetpgrp

to set process group

for controlling terminal

change in statusof children

change in status
setpgidof children

setpgid

session
Figure 9.9Summary of job control features with foreground and background jobs, and terminal driver

group to the actual terminal. The dashed line corresponding to theSIGTTOUsignal
means that whether the output from a process in the background process group appears
on the terminal is an option.
Is job control necessary or desirable? Job control was originally designed and
implemented beforewindowing terminals werewidespread. Some people claim that a
well-designed windowing system removes any need for job control. Some complain
that the implementation of job control — requiring support from the kernel, the terminal
Free download pdf