Download presentation
Presentation is loading. Please wait.
1
Controlling Processes & Periodic Processes WeeSan Lee http://www.cs.ucr.edu/~weesan/cs183/
2
Roadmap What is a process? What is a setuid process? How to create a process? Signals How to send signals to the processes? Process States Niceness Monitor Processes Periodic Processes Q&A
3
What is a process? A running program Information of a process PID PPID UID & EUID (used for access permission) GID & EGID (used for access permission) Status Niceness or nice value …
4
What is a setuid process? A regular process EUID == UID of the user who runs the command/script A setuid process EUID == the owner UID of the setuid command/script How to find setuid programs? $ find /bin -perm -4000 | xargs ls -l -rwsr-xr-x 1 root root 57908 Nov 30 14:35 /bin/mount -rwsr-xr-x 1 root root 35864 Mar 14 2007 /bin/ping -rwsr-xr-x 1 root root 31244 Mar 14 2007 /bin/ping6 -rwsr-xr-x 1 root root 24060 Mar 21 2007 /bin/su -rwsr-xr-x 1 root root 38840 Nov 30 14:35 /bin/umount
5
How to create a process? $ emacs // Bash switch (fork()) { case -1: // Error break; case 0: // Child execv("emacs",...); break; default: // Parent wait(…); break; } // Bash clone switch (fork()) { case -1: // Error break; case 0: // Child execv("emacs", …); break; default: // Parent wait(…); break; }
6
Signals Process-level interrupt requests ~30 signals $ kill -l Can be caught or trapped by a process In Bash, we do: trap ‘done2(); exit’ 0 1 2 3 15 Can be blocked or ignored
7
Signals (cont) Common signals 1 HUP 2 INT Ctrl-C 3 QUIT Core dumping 9 KILL 15 TERM STOP TSTP Ctrl-Z CONT USR1 USR2
8
How to send signals to the processes? $ kill [-signal] pid Default signal is TERM or 15 $ ps auxw | grep emacs weesan 857 0.0 0.0 13312 7952 pts/5 S Apr15 0:05 emacs $ kill -9 857 $ killall [-signal] process_name $ killall -9 emacs
9
Process States Runnable (R) Ready to be executed Sleeping (S) Get no CPU time until receiving a signal Zombie (Z) Exited process whose status hasn’t been collected Display as on ps, Stopped (T) Process stopped by STOP or TSTP signal
10
Niceness -20 to +19 A high nice value means a low priority Inherited from the parent Can increase but not decrease Except for root For example: $ nice -n 1 program $ renice 1 pid
11
Monitor Processes ps A tool for monitoring processes, eg. $ ps auxw | less $ ps laxw | less $ ps auxw | awk -F' ' '{ print $1, $2, $10; }' weesan 560 2:28 weesan 563 0:00 top A good tool to display CPU usage $ top $ top -n 1
12
Monitor Processes (cont) strace Show every system call and signal a process receives $ strace -p pid lsof List open files $ lsof -u userid $ lsof -p pid uptime Display the current time, how long the system has been up, # of current users, average system load for the pass 1, 5 and 15 mins
13
Monitor Processes (cont) Runaway processes Processes that consume excessive amounts of a system resource, such as CPU time or disk space How to approach them? 1. Use ps, top, strace, lsof to locate them 2. renice them 3. Stop them by sending STOP signal and resume later by CONT signal 4. kill them
14
Periodic Processes cron daemon A daemon that run jobs periodically Crontab (/etc/crontab, /etc/cron.*/, /var/spool/cron/) $ crontab -l $ crontab -e Format Min Hour Day Month Weeday Command 10 23 * * mon-fri /home/weesan/backup/home.sh 30 23 * * fri /home/weesan/backup/import.sh 0 */1 * * * /usr/bin/rdate -s time.nist.gov
15
Reference LAH Ch 4: Controlling Processes Ch 8: Periodic Processes
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.