logo
Linux User
OpenSource Apache Embedded C Linux MySQL Perl PHP Samba

Module Release July 2002: Job Control

This month's module release include 3 course modules covering LPI 101, Topic 1.3, Objectives 5 and 6, respectively:

  • "Running jobs in the foreground and background, bringing a job from the background to the foreground and vice versa, monitoring active processes, sending signals to processes, and killing processes; including use of ps, top, kill, bg, fg, and jobs commands."
  • "Running a program with higher or lower priority, determining the priority of a process, changing the priority of a running process; including the command nice and its relatives"

Module No. 8, called "Job Control" introduces the basic concept of running multiple processes concurrently, how to suspend a process or put it into the background while you focus on another one, and how to track background/suspended processes via shell job numbers.

Unix newbies often make the reasonable, but mistaken, assumption that putting processes into the background or suspending them is no longer important when you have X windowing, virtual desktops, and over-powered CPUs. They typically overlook the fact that most remote processing (a key feature of Unix) is easiest to do at a command line running in a terminal emulator, and that we still have finite screen real estate and finite network bandwidth. The latter is particularly important given the high latency and heavy bandwidth requirements of many X windowing applications. As a consequence, knowing how to foreground, background, prioritise and signal individual processes is an essential requirement for any professional Unix administrator.

Module No. 9, called "Create, Monitor, and Kill Processes", provides a more detailed description of what a process actually is and how to monitor one using its process identifier (PID). It points out the way in which processes are dependent on other processes (their parents), on their working directory, and their environment variables. It then discusses the use of ps, pstree, top and pidof to monitor processes and send instructions to them (signalling). Fine-grained control over running processes, through simple signalling, has long been a major advantage of industrial quality Unix systems over personal computer OSs like Microsoft Windows.

Module No. 10, called "Modifying Process Execution Priorities" is a very brief introduction to the concept of process execution priority, and the practice of setting and changing priorities with the nice and renice commands.