Archive for October 19, 2009

Step #1: First, you need to find out process PID (process id)

Use ps command or pidof command to find out process ID (PID). Syntax:
ps aux | grep processname
pidof processname

For example if process name is lighttpd, you can use any one of the following command to obtain process ID:
# ps aux | grep lighttpd
lighttpd 3486 0.0 0.1 4248 1432 ? S Jul31 0:00 /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
lighttpd 3492 0.0 0.5 13752 3936 ? Ss Jul31 0:00 /usr/bin/php5-cg

OR use pidof command which is use to find the process ID of a running program:
# pidof lighttpd
Step #2: kill process using PID (process id)

Above command tell you PID (3486) of lighttpd process. Now kill process using this PID:
# kill 3486

# kill -9 3486

-9 is special Kill signal, which will kill the process.
killall command examples

DO NOT USE killall command on UNIX system (Linux only command). You can also use killall command. The killall command kill processes by name (no need to find PID):
# killall -9 lighttpd

Kill Firefox process:
# killall -9 firefox-bin

As I said earlier killall on UNIX system does something else. It kills all process and not just specific process. Do not use killall on UNIX system (use kill -9).

Use ps command

Type the following ps command to display all running process
# ps aux | less

-A: select all processes
a: select all processes on a terminal, including those of other users
x: select processes without controlling ttys

Task: see every process on the system

# ps -A
# ps -e
Task: See every process except those running as root

# ps -U root -u root -N
Task: See process run by user vivek

# ps -u vivek
Task: Use top command

The top program provides a dynamic real-time view of a running system. Type the top at command prompt:
# top

Task: display a tree of processes

pstree shows running processes as a tree. The tree is rooted at either pid or init if pid is omitted. If a user name is specified, all process trees rooted at processes owned by that user are shown.
$ pstree

Task: Print a process tree using ps

# ps -ejH
# ps axjf
Task: Get info about threads

# ps -eLf
# ps axms
Task: Get security info

# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM
Task: Save Process Snapshot to a file

# top -b -n1 > /tmp/process.log

Or you can email it to yourself:
# top -b -n1 | mail -s ‘Process snapshot’

Task: Lookup process

Use pgrep command. pgrep looks through the currently running processes and lists the process IDs which matches the selection criteria to screen. For example display firefox process id:
$ pgrep firefox

Following command will list the process called sshd which is owned by root user.
$ pgrep -u root sshd
Say hello to htop

htop is interactive process viewer just like top, but allows to scroll the list vertically and horizontally to see all processes and their full command lines. Tasks related to processes (killing, renicing) can be done without entering their PIDs. To install htop type command:
# apt-get install htop

# yum install htop

Now type htop to run the command:
# htop