Title: Linux Guide to Linux Certification, Second Edition
1Linux Guide to Linux Certification, Second
Edition
- Chapter 10
- Managing Linux Processes
2Objectives
- Categorize the different types of processes on a
Linux system - View processes using standard Linux utilities
- Illustrate the difference between common kill
signals - Describe how binary programs and shell scripts
are executed
3Objectives (continued)
- Create and manipulate background processes
- Use standard Linux utilities to modify the
priority of a process - Schedule commands to execute in the future using
the at daemon - Schedule commands to execute repetitively using
the cron daemon
4Linux Processes
- Program Structured set of commands stored in an
executable file - Executed to create a process
- Process Program running in memory and on CPU
- User process Process begun by user on a terminal
- Daemon process System process
- Not associated with a terminal
5Linux Processes (continued)
- Process ID (PID) Unique identifier assigned to a
process - Child process Process started by another process
(parent process) - Parent process Process that has started other
processes (child processes) - Parent Process ID (PPID) Parent processs PID
6Linux Processes (continued)
Figure 10-1 Parent and child processes
7Linux Processes (continued)
Figure 10-2 Process genealogy
8Viewing Processes
- ps command View processes
- Most common process viewing utility
- No arguments Lists all processes running in
current shell - PID, terminal, command that started process, CPU
time - f (full) option More complete information
- User identifier (UID), PPID, start time, CPU
utilization
9Viewing Processes (continued)
- Process state Current processor state of process
- Most processes sleeping (S) or running (R)
- Zombie process Process finished, but parent has
not released PID - Defunct process
- Process state is Z
10Viewing Processes (continued)
- Process priority (PRI) Determines how many
processor time slices process will receive - Higher value means lower priority
- Nice value (NI) Indirectly represents priority
- Higher value means lower priority
11Viewing Processes (continued)
Table 10-1 Common options to the ps command
12Viewing Processes (continued)
- top command Displays interactive screen listing
processes - Organized by processor time
- Processes using most processor time listed first
- Rogue process Faulty process
- Consumes excessive system resources
- top command can be used to change PRI or kill
processes
13Killing Processes
- kill signal Sent to a process by kill command
- 64 types of kill signals
- Affect processes in different ways
- kill command Kills all instances of a process by
command name - To kill a process, give kill signal and PID
- If no kill signal given, SIGTERM assumed
14Killing Processes (continued)
Table 10-2 Common administrative kill signals
15Killing Processes (continued)
- Trapping Ignore a kill signal
- Kill signals sent to processes having children
- Parent process terminates all child processes
before terminating itself - Often necessary to kill parent process in order
to kill zombie processes
16Killing Processes (continued)
- killall command Kills all instances of a process
by command name - Uses process name instead of PID
- Can use top command to kill processes
17Process Execution
- Three main types of executable commands
- Binary programs
- Shell scripts
- Shell functions
18Process Execution (continued)
- Forking Act of creating new BASH shell child
process from a parent - Fork function in BASH shell
- Subshell executes program or shell script using
exec function - Original shell waits for subshell to complete
- When done, subshell kills itself
- Control returns to original shell
19Process Execution (continued)
Figure 10-3 Process forking
20Running Processes in the Background
- Foreground processes BASH shell must wait for
termination - Background processes BASH shell does not wait
for termination - metacharacter
- Upon execution, user receives BASH shell prompt
immediately
21Running Processes in the Background (continued)
- jobs command Lists background processes running
in current shell - foreground (fg) command Run a background process
in foreground - Foreground process may be paused with ctrl Z
- background (bg) command Run a foreground process
in background
22Running Processes in the Background (continued)
- Jobs command marks two most recent background
processes - Commands operate on most recent process, by
default
23Process Priorities
- Time slice Amount of time a process is given on
a CPU - More time slices mean more execution time on CPU
- Executes faster
- Usually measured in milliseconds
24Process Priorities (continued)
- PRI dictates number of time slices a process gets
- Cannot change PRI value directly
- Set NI to indirectly affect priority
- Processes start with NI of 0
- nice command Change a processs priority as it
starts
25Process Priorities (continued)
Figure 10-4 The nice value scale
26Process Priorities (continued)
- renice command Alter NI of a process after it is
running - Only root user may change NI to a negative value
- May also change NI of running processes using top
utility
27Scheduling Commands
- at daemon (atd) System daemon that executes
tasks at a future time - cron daemon (crond) System daemon that executes
tasks repetitively in the future
28Scheduling Commands with atd
- at command Schedule commands and tasks to run at
a preset time - l option View a list of scheduled jobs
- Regular users see only their own jobs
- c option View system environment at scheduling
time - d option Delete a job
- f option Run scheduled jobs from shell script
29Scheduling Commands with atd (continued)
- atq command Alternative method to view scheduled
jobs - at daemon uses current shells environment for
execution - Shell environment and scheduled commands stored
in /var/spool/at - If stdout of scheduled command has not been
redirected to file, mailed to user
30Scheduling Commands with atd (continued)
Table 10-3 Common at commands
31Scheduling Commands with atd (continued)
- /etc/at.allow File listing all users able to use
at command - /etc/at.deny File listing all the users not able
to use at command - On Fedora Linux systems, no /etc/at.allow file
exists - Empty by default
- All users allowed to use at daemon
32Scheduling Commands with crond
- Cron tables Files specifying tasks for cron
daemon to run - Specify when commands should be executed
- User and system cron tables
- Six fields separated by space or tab characters
33Scheduling Commands with crond (continued)
Figure 10-5 User cron table format
34Scheduling Commands with crond (continued)
Figure 10-6 Sample user cron table entry
35Scheduling Commands with crond (continued)
- /var/spool/cron Stores user cron tables
- /etc/crontab Contains default system cron table
- /etc/cron.d Contains additional system cron
tables
36User Cron Tables
- /etc/cron.allow Lists users able to use cron
command - /etc/cron.deny Lists users not able to access
cron command
37User Cron Tables (continued)
- crontab command View and edit user cron tables
- e option Edit cron tables in vi editor
- l option List a user cron table
- r option Remove all scheduled jobs
38The System Cron Table
- System maintenance, backups, and CPU-intensive
tasks often scheduled for non-business hours - Often scheduled by cron daemon
- Entries in system cron table (/etc/crontable)
39The System Cron Table (continued)
- Initial section of cron table specifies execution
environment - Remainder similar to user cron table entries
- Sixth field specifies who to run command as
- Remaining fields represent command to run
- run-parts command Execute all files in a
directory
40Summary
- Processes are programs that are executing on the
system - User processes are run in the same terminal as
the user who executed them, whereas daemon
processes are system processes that do not run on
a terminal - Every process has a parent process associated
with it and, optionally, several child processes
41Summary (continued)
- Process information is stored in the /proc
filesystem the ps and top commands can be used
to view this information - Zombie and rogue processes that exist for long
periods of time use up system resources - You can send kill signals to a process using the
kill, killall, and top commands
42Summary (continued)
- The BASH shell forks a subshell to execute most
commands - Processes can be run in the background by
appending an to the command name - The priority of a process can be affected
indirectly by altering its NI - Commands can be scheduled to run at a later time
using the at and cron daemons