13.1 UNIX System Processes
13.1.2 Types of processes
Daemon - Daemons are processes that are started by the UNIX kernel and exist for a specific purpose. For instance, the lpsched daemon exists for the sole purpose of handling print jobs. When no printing is taking place on the system, the lpsched daemon is running but inactive. When a print job is submitted, this daemon becomes active until the job is finished. The dtlogin daemon provides the CDE login screen at the beginning of a user's session and again after the user exits CDE. UNIX daemons are similar to services in Windows NT/2000 and NetWare Loadable Modules (NLMs) with Novell NetWare.

Parent - A process which spawns another process is referred to as its parent. Following system boot-up, a process called init daemon is invoked. Every process except init has a parent process. The init daemon is always process number one. The init process is at the top of the process hierarchy and is responsible for spawning many system processes. The dtlogin daemon is spawned by init and is, therefore, referred to as the parent process of the dtlogin daemon.

Child - A process which is spawned by another process is referred to as a child process. When a user is working in a terminal window in CDE, that terminal's PID is the Parent Process ID (PPID) of any commands issued in the terminal. These commands are child processes of the terminal process. The parent process receives and displays the output from the child process and then "kills" the process. When you issue a command from the shell, the shell spawns a child process, waits for it to execute and when it is finished, control returns to the shell.

Orphan - If a command is issued in a terminal window and the window is closed before the command returns output, that process becomes an orphan. The system passes the orphan process to init which then becomes the parent process and terminates the child process.

Zombie (or Defunct) - Occasionally a child process does not return to the parent process with its output. This process becomes "lost" in the system. The only resource this process uses is a slot in the process table; it cannot be stopped in a conventional manner. This type of process is called a zombie or defunct process. The only way to kill a defunct process is to reboot the system.