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...

24
UNIX COMP-145 LECTURE 5: UNIX PROCESSES TEXT: S. DAS, “YOUR UNIX: THE ULTIMATE GUIDE”, 2 ND EDITION, MCGRAW HILL, 2006 10/22/2009 rwj BROOKDALE COMMUNITY COLLEGE 1

Upload: josephine-goodman

Post on 24-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

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

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

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

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

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

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

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

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

• 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

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

• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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