170 likes | 248 Views
Processes & Daemons. Chapter IV / Part III. Commands. Internal commands: alias, cd, echo, pwd, time External commands, code is in a file: grep, ls, more Command (usually) is a file Binary or shell script ls is actually /bin/ls command files set to executable
E N D
Processes & Daemons • Chapter IV / Part III
Commands • Internal commands: alias, cd, echo, pwd, time • External commands, code is in a file: grep, ls, more • Command (usually) is a file • Binary or shell script • ls is actually /bin/ls • command files set to executable • Can use relative pathname if in PATH • echo $PATH • add to path • export PATH=$PATH:~/bin
Processes • Processes lie at the heart of all Unix/Linux OS • Very crucial to understanding the operating system • Process - an independently running program • has own set of resources, such as CPU time, memory, hard disk space • Linux is a multiprocessing OS • multiple processes running at the same time • Process scheduler: part of kernel • processes can communicate
Processes • Resources managed by kernel • everything else is a process • shell processes & daemons • forking • ps • top
/proc • Useful for analyzing processes and hardware • Numbered directory for running process • Example • cmdline : the parent command line • status : current status • cwd : current working directory • Hardware info • meminfo • ioports
Process states Linux Processes state diagrams
Background Processes • started with an ‘&’ • jobs • fg • bring into foreground • bg • resumes execution • pgrep -f <process-name> • Sequential process execution • cmd1; cmd2; cmd3 • Parallel execution • cmd1& cmd2 & cmd3
Process creation • By forking • what happens when command wc input.txt is executed • shell searches for wc and input.txt • checks wc for permission • calls fork to create a child shell • child shell calls exec to become wc • wc executes • control is returned to shell
Process hierarchy • System starts with GRUB • starts kernel • init - PID 1 (started by swapper (PID 0)) • initialized background daemons • initializes and mounts root filesystem • starts getty on every terminal for login process • login • success: forks a shell • shell continues till <Ctrl-D> • failure: goes back to getty
Processes • only init and swapper are permanent • ps -e f or pstree • shows hierarchical view of processes • pstree is more compact view • ulimit
Daemons • Background system processes • monitor hardware • networking tasks • schedule tasks • usually end with a d • lpd, ftpd, httpd, sshd, .... • directly owned by init process • usually launched at boot time
Runlevels • Runlevel: current system state • 0 : system at halt • 6: reboot • 1: single user mode • 2 - 5: different stages of system execution • runlevel; who -r • init manages the runlevel • /etc/inittab • lists which processes are started when
inittab • /etc/inittab format • id:runlevel:action:process • specifying default level • id:3:initdefault:
rc.d directories • Under /etc/ • each corresponds to a runlevel • Hold scripts (programs) for startup and kill • links to /etc/init.d • S* - starting • K* - killing • explicitly start or stop a service