Overview
• Each process has its own PID (process ID) but there is an exception. For example, you can find two PID 1 if you use virtualization
• PID 1 is always “init”, run at boot
• All processes except init are created by other process
ps aux # To see all processes running in the system
ps aux | grep init
# Display processes
top
# or
htop # recommended but need to install
• PID 1 is always “init”, run at boot
• Init is the parent of all processes
• UID identifies who own the process
• EUID (effective uid) is a way to give a user, other than the one who owns the process to spawn the process
• If you have a low priority task, you set the niceness high
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Process SIgnals
• The way that a process communicates
• Sent by the kernel when the process did something bad like division by zero or when someting is ready
• Signals are sent to parent process(es) and the kernel
• Standard Signals (man 7 signal)
◇ SIGTERM (15): terminate (default)
◇ SIGKILL (9): kill
# Terminate a process
# For example firefox
ps aux | grep firefox
kill 15 2196 # 15 = terminate (default), 2196 = pid
# or
kill 2196
# Kill a process
kill 9 2196 # last resort. may lead to corrupted data
# Kill all processes by process name
ps aux | grep cups # cups = Common Unix Printing System
sudo killall cupsd
# Kill all processes run by username
sudo pkill -u username
# References
man pgrep
man pkill
man 7 signal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
State
• There are 4 states that a process can be in:
◇ runnable
◇ sleeping
◇ zombie
▪ something that has finished and waiting to exit
▪ If there are too many zombies, check if parent process is frozen
◇ stopped
▪ something that is stopped by SIGSTOP and waiting for a SIGCONT to continue
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Niceness
• To find the niceness of a process, look at 4th column (NI) in htop
• The higher the number, the lower the priority
• Range: -20 to 19 (default = 0)
# Launch a process with nice
nice -n 15 /backup/not/important/at/all/task
# Change the niceness of a process
# -5: niceness, 2744: pid
sudo renice -5 2744
• You can also change niceness of a process directly in htop by pressing F7 or F8
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The /proc Filesystem
• Proc is a virtual file system and is mounted on /proc
# List of all processes
ls -alh /proc
# List of init process
sudo ls -alh /proc/1/ | less
• Notice the size of init process is 0 because they are read and executed on the fly
sudo -i
# How the process is called
cat cmdline
Index