
Monitoring processes using ps
We have used the command ps
in the introduction. Let's learn more about it:
- To list the process associated with our current Bash shell terminal, enter the following command:
$ ps
- To list processes along with the parent process ID associated with the current terminal, enter the following command:
$ ps –f
We can see the process ID in the
PID
column and the parent process ID in thePPID
column in the preceding output. - To list processes with the parent process ID along with the process state, enter the following command:
$ ps –lf
In the preceding output, the column with
S
(state) shows the current state of a process, such asR
for running andS
for suspended state. - To list all the processes running in the operating system including system processes, enter the following command:
$ ps –ef
The process names in
[]
are kernel threads. If you are interested in more options to learn about theps
command, you can use the following command:$ man ps.
To find a particular process, you can use the following command:
$ ps –ef | grep "process_name"
The command with
grep
will display the process withprocess_name
. - If we want to terminate the running process, enter following command:
$ kill pid_of_process_to_be_killed
- Many a time, if the process is not killed by the
$ kill
command, you may need to pass additional option to ensure that the required process is killed, which is shown as follows:$ kill -9 pid_of_process_to_be_killed
- We can terminate the process by the name of a process instead of using the process ID as follows:
$ pkill command_name $ pkill sleep
Or:
$ pkill -9 command_name
- To know more about various flags of
kill
, enter following command:$ kill –l
This displays all the signals or software interrupts used by the operating system. When we enter the
$ kill
command, the operating system sends theSIGTERM
signal to the process. If the process is not killed by this command, then we enter the following command:$ kill -9 process_name
This sends
SIGKILL
to the process to be killed.