![Page 1: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/1.jpg)
UNIX COMP-145
LECTURE 5: UNIX PROCESSES
TEXT: S. DAS, “YOUR UNIX: THE ULTIMATE GUIDE”, 2ND EDITION, MCGRAW HILL, 2006
10/22/2009 rwj BROOKDALE COMMUNITY COLLEGE 1
![Page 2: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/2.jpg)
BROOKDALE COMMUNITY COLLEGE 2
UNIX OPERATING SYSTEM
• THE UNIX PROCESS STRUCTURE• PROCESS INITIALIZATION SEQUENCE• PROCESS CONTROL COMMANDS• RUNNING SHELL SCRIPTS IN BACKGROUND• PROCESS SIGNALING AND EXIT STRUCTURE• EXECUTE &TERMINATE PROCESSES• SCHEDULE A PROCESS TO RUN
AUTOMATICALLY
10/22/2009 rwj
![Page 3: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/3.jpg)
BROOKDALE COMMUNITY COLLEGE 3
THE PROCESS
• AN INSTANCE OF A PROGRAM IN EXECUTION. • IDENTIFIED BY A UNIQUE PID (PROCESS-ID). • CREATED BY ANOTHER PROCESS AS ITS CHILD• ONE PROCESS CAN BE PARENT OF MULTIPLE
CHILDREN• CAN BE KILLED OR STOPPED BY SENDING IT A
SIGNAL
10/22/2009 rwj
![Page 4: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/4.jpg)
THE PROCESS CYCLE
• PARENT FORKS A CHILD BY 1ST REPLICATING ITS OWN PROCESS IMAGE AND LOGGING THE CHILD IN THE PROCESS TABLE.
• CHILD EXECUTES (OVERWRITES) THIS IMAGE WITH THAT OF ANOTHER PROGRAM.
• WHILE CHILD IS RUNNING, PARENT MAY WAIT FOR CHILD TO COMPLETE EXECUTION (IF A CHILD EXECUTING IN
FOREGROUND) CONTINUE WITH ITS OTHER TASKS (IF A CHILD EXECUTING IN
FOREGROUND)
• PROCESS TERMINATES AND PARENT PICKS UP EXIT STATUS OF CHILD. Until Parent picks up exit status of child, process called a ZOMBIE,
because process not removed
• KERNEL REMOVES ENTRY FOR DEAD CHILD FROM PROCESS TABLE.
10/22/2009 rwj BROOKDALE COMMUNITY COLLEGE 4
![Page 5: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/5.jpg)
BROOKDALE COMMUNITY COLLEGE 510/22/2009 rwj
THE PROCESS CYCLE (contd)
• IF PARENT PROCESS DIES BEFORE A CHILD PROCESS CHILD PROCESS CALLED AN ORPHAN PROCESS init BECOMES PARENT OF CHILD,
AS IT IS FOR MOST DAEMONS ORPHAN PROCESSES CONTINUE TO OPERATE UNTIL ITS
KILLED OR ENDS NORMALLY.
![Page 6: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/6.jpg)
BROOKDALE COMMUNITY COLLEGE 610/22/2009 rwj
MORE ON THE PROCESS
• BUILT IN SHELL COMMANDS DO NOT FORK SEPARATE A PROCESS FOR EXAMPLE: cd or pwd
• SHELL SCRIPTS USE SUB-SHELLS TO RUN COMMANDS IN SCRIPT
• SIGNALS: USED BY KERNEL TO COMMUNICATE WITH A PROCESS kill -s, OR GENERATED THROUGH YOUR keyboard
![Page 7: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/7.jpg)
BROOKDALE COMMUNITY COLLEGE 710/22/2009 rwj
PROCESS ATTRIBUTES INHERITED BY CHILD
• Real User ID (UID) and Group (GID)• Effective UID and GID• Current directory• File descriptors• umask value• Environment variables
![Page 8: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/8.jpg)
• PID Process ID – referred to as “pid” When born, logged in Process Table with unique number Used to track and kill a process Stored in variable $$ To see or show value of $$ use echo $$
• PPID Parent PID, referred to as “p-pid” Can be used to kill a child process but only be used if 1 child spawned
$ ps PID TT STAT TIME COMMAND64199 p3 S 0:00.00 -ksh (ksh)64218 p3 R+ 0:00.00 ps$
PROCESS ATTRIBUTES NOT INHERITED BY CHILD
10/22/2009 rwj BROOKDALE COMMUNITY COLLEGE 8
![Page 9: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/9.jpg)
BROOKDALE COMMUNITY COLLEGE 910/22/2009 rwj
PROCESS CONTROL COMMANDS
• ps (PROGRAM STATUS)• kill (TERMINATE PROCESS)
![Page 10: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/10.jpg)
• DISPLAY ENVIRONMENTSPECIFIES A LIST OF DIRECTORIES TO SEARCH.
$ ps –e
PID TT STAT TIME COMMAND64199 p3 S 0:00.00 -ksh (ksh)64304 p3 R+ 0:00.00 ps –e
PROGRAM STATUS (ps)
BROOKDALE COMMUNITY COLLEGE 1010/22/2009 rwj
![Page 11: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/11.jpg)
BROOKDALE COMMUNITY COLLEGE 11
• DISPLAY COMMAND-LINE AND ENVIRONMENT INFO ABOUT SWAPPED OUT PROCESSES. UID OF USE MUST BE 0.
$ ps –f
PID TT STAT TIME COMMAND64199 p3 S 0:00.00 -ksh (ksh)64305 p3 R+ 0:00.00 ps –f
10/22/2009 rwj
PROGRAM STATUS (ps) (contd)
![Page 12: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/12.jpg)
BROOKDALE COMMUNITY COLLEGE 12
• DISPLAY DETAILED PROCESS LISTING
$ ps –lUID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND83641 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
10/22/2009 rwj
PROGRAM STATUS (ps) (contd)
![Page 13: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/13.jpg)
BROOKDALE COMMUNITY COLLEGE 1310/22/2009 rwj
RUNNING JOBS IN THE BACKGROUND
• APPEND & (AMPERSAND) TO THE END OF A SHELL OR COMMAND SHELL OPERATOR TO RUN IN BACKGROUND FREES KEYBOARD AND SCREEN FOR USE.
$ sort empl.lst > junk2 &
![Page 14: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/14.jpg)
BROOKDALE COMMUNITY COLLEGE 1410/22/2009 rwj
RUNNING JOBS IN THE BACKGROUND (contd)
• PREPEND nohup (NO HANG UP) IN FRONT OF A SHELL OR COMMAND SHELL OPERATOR TO NOT TERMINATE THE COMMAND
RUNNING IN BACKGROUND EVEN IF THE SESSION ENDS
$ nohup sort empl.lst > junk2 &
UNIKE & , USE nohup WITH EACH COMMAND IN A PIPELINE, E.G.
$ nohup grep directory | nohup sort > empl_directors_sorted&
![Page 15: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/15.jpg)
BROOKDALE COMMUNITY COLLEGE 1510/22/2009 rwj
PROCESS SIGNALING AND EXIT STRUCTURE
• JOB CONTROL USES <job_id> AS IT RELATES TO PGID MOVE JOBS BETWEEN FOREGROUND AND
BACKGROUND COMMANDS
fg bg suspend (OUTPUT TO TERMINAL) jobs (LISTS CURRENTLY ACTIVE JOBS) kill (TERMINATES JOBS) ctl-z (SUSPENDS CURRENT FOREGROUND
JOB)
![Page 16: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/16.jpg)
BROOKDALE COMMUNITY COLLEGE 1610/22/2009 rwj
EXECUTE & TERMINATE PROCESSES
• JOB CONTROL COMMANDS START A COMMAND IN THE BACKGROUND$ find / -name a.out –print > files_to_remove 2>dev/null &[1] 1287$ ls -lR / > system_list 2>dev/null &[2] 1288$ du -s /usrs1/* > disk_usage &[3] 1289
• STOP OUTPUT TO THE TERMINAL + SUSPEND JOB SUSPENDS JOB WHEN TRIES TO WRITE TO TERMINAL$ stty tostop
![Page 17: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/17.jpg)
BROOKDALE COMMUNITY COLLEGE 1710/22/2009 rwj
EXECUTE & TERMINATE PROCESSES (contd)
• USE OF JOB CONTROL FUNCTIONS USING JOB NUMBER MOVE TO FOREGROUND
$ fg %1
SUSPENDS ONLY A FOREGROUND JOB$ [ctl-z]
USING JOB NUMBER RETURN JOB 1 TO BACKGROUND $ bg %1
WHEN JOB ENDS NORMALLY GET $ [2]- Exit 1 ls -lR / > system_list 2>dev/null
WHEN JOB NEEDS TO BE KILLED MANUALLY USE <job_id> $ kill %2[1] + Terminated ls -lR / > system_list 2>dev/null
![Page 18: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/18.jpg)
BROOKDALE COMMUNITY COLLEGE 1810/22/2009 rwj
• kill <pid> or <job_id>Pid SPECIFIES THE PROCESS THAT THE OS IS TO KILLTHE RESULT IS NOT REVERSIBLE.
$ kill 154339$ kill %1
TERMINATE PROCESSES
![Page 19: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/19.jpg)
BROOKDALE COMMUNITY COLLEGE 1910/22/2009 rwj
DAEMON IN UNIX
• SCRIPTS THAT LACK TERMINAL CONTROL $ lpsched
$ mail, mailx, cron
• ps –e SHOWS cron DAEMON RUNNING.• PROGRAMS INVOKED BY LAUNCHING A SHELL
OR SUB-SHELL SHELL SCRIPTS SUB-SHELL READS & EXECUTES EACH STATEMENT IN
SCRIPT
![Page 20: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/20.jpg)
BROOKDALE COMMUNITY COLLEGE 2010/22/2009 rwj
SCHEDULE A PROCESS TO RUN AUTOMATICALLY
• cron vs crontab cron
KERNEL STARTED DAEMON STARTED EACH MINUTE TO EXECUTE WHAT IS IN A USER’S
crontab FILE crontab
TAKES AS INPUT A USER EDITED FILE USED TO INSERT JOBS 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> (LISTS CONTENT OF USER’S
crontab FILE)
![Page 21: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/21.jpg)
BROOKDALE COMMUNITY COLLEGE 2110/22/2009 rwj
SCHEDULE A PROCESS TO RUN AUTOMATICALLY (contd)
• CRONTAB file’s entry syntax:minutes, hours, days of month, month, days of week, command
o MINUTES: 00 TO 59, CAN BE EXPRESSED AS A RANGE E.G., 00-15, or 0,15,30,45
o HOURS : 0 TO 23, # of hourso DAY IN MONTH: 0 TO MAX # DAYS IN MONTHo MONTH: 1 TO 12o DAYS OF WEEK: 0 TO 6, WHERE 0=SUNDAYo USE ASTERISK (*) TO INDICATE ALLo USE COMMA (,) TO INDICATE A SET OF VALUESo USE HYPHEN (-) TO INDICATE A RANGE OF VALUES
![Page 22: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/22.jpg)
BROOKDALE COMMUNITY COLLEGE 2210/08/2009 rwj
SCHEDULE A PROCESS TO RUN AUTOMATICALLY (contd)
• EXAMPLES OF ENTRIES IN A crontab FILEminutes, hours, days of month, month, days of week, command
00-10 17 10,20,30 * 1,3 find / -newer .last_time -print >backuplist
(EXECUTE THE COMMAND EITHER 3 DAYS OF THE MONTH OR MONDAY AND WEDNESDAY OF EACH MONTH)
55 17 * * 4 find / -newer .last_time -print >backuplist
(EXECUTE THE COMMAND EVERY THURSDAY AT 5:55 PM) 0,30 * * * * find / -newer .last_time -print >backuplist
(EXECUTE THE COMMAND EVERY 3O MINUTES ON THE HALF HOUR)
![Page 23: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/23.jpg)
BROOKDALE COMMUNITY COLLEGE 2310/22/2009 rwj
• UTILITY FOR ONE TIME EXECUTION at <time> - SAME DATE, FORMAT hhmm OR hh:mmat –t <time2>- SCHEDULED, FORMAT [[CC]YY]MMDDhhmm[.SS]
$ at 15:08at> empawk2.sh > rep.lst
at –l - LISTS ITEMS IN “at” QUEUEat -r <job_id> - reMOVES ITEM FROM “at” QUEUEat –m <time>
• EXECUTE AS A BATCH JOB IN “at” QUEUE BATCH JOBS ARE RUN WHEN RESOURCE UTILIZATION LEVELS ARE
LOW, HAVE LOWER PRIORITY THAN USER FOREGROUND JOBS SUBMITS JOB TO RUN IN BATCH QUEUE
batch < empawk22.sh
SCHEDULE A PROCESS TO RUN AUTOMATICALLY (contd)
![Page 24: U NIX C OMP -145 L ECTURE 5: UNIX P ROCESSES T EXT : S. D AS, “Y OUR U NIX : T HE ULTIMATE G UIDE ”, 2 ND E DITION, M C G RAW H ILL, 2006 10/22/2009 rwjBROOKDALE](https://reader036.vdocuments.site/reader036/viewer/2022062516/56649dca5503460f94ac11f8/html5/thumbnails/24.jpg)
BROOKDALE COMMUNITY COLLEGE 2410/08/2009 rwj
SUMMARY
• PROCESS CYCLE WHAT PARENT OR CHILD CAN DO WHILE OTHER IS RUNNING
• PROGRAM STATUS COMMAND• RUNNING A PROCESS
BACKGROUND FOREGROUND TERMINATE A PROCESSES
• CRON AND RELATED COMMANDS