UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by...
-
Upload
kathryn-french -
Category
Documents
-
view
227 -
download
1
Transcript of UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by...
![Page 1: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/1.jpg)
UNIX Processes
![Page 2: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/2.jpg)
The UNIX Process
• A process is an instance of a program in execution.
• Created by another parent process as its child.
• One process can be parent of multiple children.
• The shell is the parent of the commands you run.
•The shell’s parent is the init process.
![Page 3: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/3.jpg)
• PID – The Process ID• When born, logged in the Process Table with unique number• Used to track and kill a process • Shell’s PID is stored in variable $$• To see or show value of $$ use echo $$
• PPID – The Process ID of the Parent• Can be used to kill a child process
Two Important Process Attributes
![Page 4: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/4.jpg)
Other Process Attributes Inherited from Parent
• Real UID and GID
• Effective UID and GID
• Current directory
• File descriptors
• umask value
• Environment variables
![Page 5: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/5.jpg)
$ ps Display a simple listing of your processesPID TT STAT TIME COMMAND64199 p3 S 0:00.00 -ksh (ksh)64218 p3 R+ 0:00.00 ps
$ ps –a Display all the users’ processes
$ ps –e Display all processes including system processes
$ ps –f Display a full listing of your processes
$ ps –l Display a long detailed listing of processes UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND 83641 75606 75605 0 20 0 1996 540 pause S p3 0:00.00 -ksh (ksh) 83641 75610 75606 0 96 0 5776 992 - R+ p3 0:00.00 ps –l
Displaying Process Status with the ps Command
![Page 6: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/6.jpg)
Daemons in UNIX
• Daemons are system processes that lack terminal control. Examples:
• lpsched• mail, mailx • cron
• Cannot read from terminal nor write to terminal
• ps –e shows all daemons running.
![Page 7: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/7.jpg)
Exporting and Environment Variables• A local variable is not visible in child processes: $ x=5 ; sh Create a child process $ echo $x No value in child!
• An exported variable is visible in all child processes: $ x=5 ; export x x is now environmental $ sh ; echo $x Create a child process 5
• Changes made in child are not available in parent: $ x=7 Value set in child $ exit Child dies; back to parent $ echo $x 5 Original value in parent
![Page 8: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/8.jpg)
The UNIX Process Cycle• A parent process forks a child by replicating its own process image.
• The child process execs (overwrites) this image with that of another program.
• While the child is running, parent may• wait for child to complete execution (foreground execution).• continue with its other tasks (background execution).
• The process terminates and parent picks up exit status of child.
• Kernel removes entry for dead child from process table.
![Page 9: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/9.jpg)
When the Child Dies Before the Parent
• When child dies, it leaves behind an exit status in process table.
• Parent process may• pick up exit status; remove child entry in process table; child is now completely dead OR• may not wait; child entry not removed from process table; child in zombie state.
• Zombies can’t be killed but are harmless (they take up space); shown as <defunct> in ps output.
![Page 10: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/10.jpg)
When the Parent Dies Before the Child
• Child becomes an orphan.
• Child adopted by init process.
• PPID of child changes to 1 (init process).
• Orphan processes continue to operate until killed or ends normally.
• When child dies, init picks up the exit status.
![Page 11: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/11.jpg)
Signals
• Used by kernel to communicate with processes (e.g., notification of occurrence of an event, e.g. a keyboard press).
• Process may• perform the default action OR• ignore the signal OR• catch the signal and invoke a signal-handling function (trap).
• Some important signals• SIGINT (interrupt key) SIGQUIT (quit and core dump)• SIGSTOP (suspend key) SIGKILL (a sure kill, but not a keyboard
event)
![Page 12: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/12.jpg)
• No keyboard event generates a kill.
• Kill signals cannot be trapped. You must kill using this command.
• kill <pid> Example: $ kill 154339 (kills process 154339)
• Results are not reversible.
Terminating Processes with the kill Command
![Page 13: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/13.jpg)
Running a Job in the Background
• Job is run in background with &. Frees keyboard screen for other uses. Example: sort empl.lst > junk2 &
• If you logout before it’s finished, the job may be terminated.
• Using nohup (no hang up) and &, the job will run even after logging out. Example: nohup sort empl.lst > junk2 &
• Use nohup with every command in a pipeline. Example: nohup grep book | nohup sort > sortedfile &
![Page 14: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/14.jpg)
Job Control• Job control supported by most shells but not Bourne.
• Job accessed by job number usually shown in brackets e.g., [1].
• Apart from background execution, job control allows• suspending a job ([Ctrl-z]).• bringing a background job to foreground: fg %1• moving a suspended job to foreground or background: bg %find
• The jobs command lists all running/ suspended jobs.
•The kill command can also take a job id e.g., kill %3
![Page 15: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/15.jpg)
Scheduling a Process to Run Periodically
cron
• Kernel started daemon (UNIX’s chronograph)
• Wakes up each minute to execute what is in crontabs file
crontab • Takes as input a user edited file • Used to insert jobs in crontabs file to be executed by cron
daemon• crontab –r (removes content from a user’s crontab file)• crontab –l (lists content of user’s crontab file)• crontab <file> (adds content of user’s file to
crontabs)
![Page 16: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/16.jpg)
crontab File Format
minutes hours days of month months days of week command
• Minutes: 00 to 59, can be expressed as a range e.g., 00-15, or 0,15,30,45
• Hours : 0 to 23• Day in month: 0 to max # days in month• Month: 1 to 12• Days of week: 0 to 6, where 0=Sunday• Use asterisk (*) to indicate all• Use comma (,) to indicate a set of values• Use hyphen (-) to indicate a range of values
![Page 17: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/17.jpg)
crontabs File Format Examples
00-10 17 10,20,30 * 1,3 find / -newer .last_time -print >bkup
Execute the find command either 3 days of the month or Monday andWednesday of each month.
55 17 * * 4 find / -newer .last_time -print > bkupExecute the find command every Thursday at 5:55 pm.
0,30 * * * * find / -newer .last_time -print >bkupExecute the find command every 30 minutes on the half hour.
![Page 18: UNIX Processes. The UNIX Process A process is an instance of a program in execution. Created by another parent process as its child. One process can be.](https://reader036.fdocuments.in/reader036/viewer/2022081508/56649dca5503460f94ac11ed/html5/thumbnails/18.jpg)
at hh:mm or at <keywords> Examples: at 15:08 at noon + 1 year at> flush.sh >rep.lst at> cleanup.sh > clean.lst ctl-d ctl-d
batch - put in batch queue and run the job later• runs when resource utilization levels are low. • have lower priority than user foreground jobs. • Example: batch < checkusers.sh
• System may limit use of these commands.
Scheduling a Process to Run Later