Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 15

Controlling Processes & Periodic Processes

WeeSan Lee <weesan@cs.ucr.edu> http://www.cs.ucr.edu/~weesan/cs183/

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

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

What is a setuid process?

A regular process

EUID == UID of the user who runs the command/script


EUID == the owner UID of the setuid command/script $ find /bin -perm -4000 | xargs ls -l

A setuid process

How to find setuid programs?

-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

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; }

Signals

Process-level interrupt requests ~30 signals

$ kill -l In Bash, we do:

Can be caught or trapped by a process

trap done2(); exit 0 1 2 3 15

Can be blocked or ignored

Signals (cont)

Common signals 1 HUP 2 INT

Ctrl-C Core dumping

3 QUIT

9 KILL 15 TERM STOP TSTP

Ctrl-Z

CONT USR1 USR2

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 -9 emacs

$ killall [-signal] process_name

Process States

Runnable (R)

Ready to be executed
Get no CPU time until receiving a signal Exited process whose status hasnt been collected Display as <defunct> on ps, Process stopped by STOP or TSTP signal

Sleeping (S)

Zombie (Z)

Stopped (T)

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

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

Monitor Processes (cont)

strace

Show every system call and signal a process receives $ strace -p pid List open files $ lsof -u userid $ lsof -p pid 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

lsof

uptime

Monitor Processes (cont)

Runaway processes
Processes that consume excessive amounts of a system resource, such as CPU time or disk space

1. 2. 3.

How to approach them?


Use ps, top, strace, lsof to locate them renice them Stop them by sending STOP signal and resume later by CONT signal kill them

4.

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

Reference

LAH

Ch 4: Controlling Processes Ch 8: Periodic Processes

You might also like