Processes

Kill a process (TL;DR)

$ kill <pid>

Ex: $ kill 1234

By Port

Source mr-khan.gitlab.io

Sometimes I fed up with searching my program PID. As you know the port number so you can easily find the port PID and kill it. If you want to kill a process running on port number 8000 then first you need to find the PID and then kill it. Run the following command to find port number PID:

sudo lsof -t -i:8000

then kill:

sudo kill $(sudo lsof -t -i:8000)

Courtesy of booleanworld.com

...more...below:

Use top to see running processes.

azureuser@miccai:~$ top

top - 19:14:36 up 28 min,  1 user,  load average: 0.00, 0.02, 0.05
Tasks: 115 total,   1 running, 114 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   3514568 total,   715812 used,  2798756 free,    32776 buffers
KiB Swap:        0 total,        0 used,        0 free.   336792 cached Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                     
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                                                                                                                    
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.10 ksoftirqd/0                                                                                                                                 
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                                                                                
     6 root      20   0       0      0      0 S   0.0  0.0   0:00.19 kworker/u256:0                                                                                                                              
     7 root      20   0       0      0      0 S   0.0  0.0   0:00.90 rcu_sched                                                                                                                                   
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                                                                      
     9 root      20   0       0      0      0 S   0.0  0.0   0:00.99 rcuos/0                                                                                                                                     
    10 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/0                                                                                                                                     
    11 root      rt   0       0      0      0 S   0.0  0.0   0:00.07 migration/0                                                                                                                                 
    12 root      rt   0       0      0      0 S   0.0  0.0   0:00.02 watchdog/0                                                                                                                                  
    13 root      rt   0       0      0      0 S   0.0  0.0   0:00.02 watchdog/1                                                                                                                                  
    14 root      rt   0       0      0      0 S   0.0  0.0   0:00.03 migration/1                                                                                                                                 
    15 root      20   0       0      0      0 S   0.0  0.0   0:00.11 ksoftirqd/1                                                                                                                                 
    17 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:0H                                                                                                                                
    18 root      20   0       0      0      0 S   0.0  0.0   0:00.42 rcuos/1                                                                                                                                     
    19 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/1                                                                                                                                     
    20 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 khelper                                                                                                                                     
    21 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kdevtmpfs                                                                                                                                   
    22 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 netns                                                                                                                                       
    23 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 perf                                                                                                                                        
    24 root      20   0       0      0      0 S   0.0  0.0   0:00.00 khungtaskd                                                                                                                                  
    25 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 writeback                                                                                                                                   
    26 root      25   5       0      0      0 S   0.0  0.0   0:00.00 ksmd                                                                                                                                        
    27 root      39  19       0      0      0 S   0.0  0.0   0:00.03 khugepaged                                                                                                                                  
    28 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 crypto                                                                                                                                      
    29 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kintegrityd                                                                                                                                 
    30 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset                                                                                                                                      
    31 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kblockd                                
    ...
    ...
    ...

The other option is $ ps aux. This will give the command used to run the process (this can sometimes be more helpful).

azureuser@miccai:~$ ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.2  0.1  35080  5100 ?        Ss   18:46   0:04 /sbin/init
root          2  0.0  0.0      0     0 ?        S    18:46   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    18:46   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   18:46   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    18:46   0:00 [kworker/u256:0]
root          7  0.0  0.0      0     0 ?        S    18:46   0:00 [rcu_sched]
root          8  0.0  0.0      0     0 ?        S    18:46   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    18:46   0:01 [rcuos/0]
root         10  0.0  0.0      0     0 ?        S    18:46   0:00 [rcuob/0]
root         11  0.0  0.0      0     0 ?        S    18:46   0:00 [migration/0]
root         12  0.0  0.0      0     0 ?        S    18:46   0:00 [watchdog/0]
root         13  0.0  0.0      0     0 ?        S    18:46   0:00 [watchdog/1]
root         14  0.0  0.0      0     0 ?        S    18:46   0:00 [migration/1]
...
...
...

The advantage of using ps is that you can easily filter this list with the grep command. For example, to find a process associated with the term "SCREEN", you can use:

azureuser@miccai:~$ ps aux | grep -i SCREEN
azureus+   1813  0.0  0.0  26104  2756 ?        Ss   19:02   0:00 SCREEN -S mysql
azureus+   2058  0.0  0.0   8212  2148 pts/0    S+   19:17   0:00 grep --color=auto -i SCREEN

Thus, even when there are no “vnstat” related processes running, we would get one entry showing the grep process:

azureuser@miccai:~$ ps aux | grep -i "vnstat"
azureus+   2070  0.0  0.0   8212  2212 pts/0    S+   19:18   0:00 grep --color=auto -i vnstat

Killing a process:

There are various commands you can use to kill a process — kill, killall, pkill and top. We will begin from the simplest one: the killall command.

killall

Killing processes with the killall command:

The killall command is one of the easiest ways to kill a process. If you know the exact name of a process, and you know that it’s not running as another user and it is not in the Z or D states, then you can use this command directly; there’s no need to manually locate the process as we described above.

By default, For example, to kill a process named “firefox”, run:

$ killall firefox

To forcibly kill the process with SIGKILL, run:

$ killall -9 firefox

You can also use -SIGKILL instead of -9.

If you want to kill processes interactively, you can use -i like so:

$ killall -i firefox

If you want to kill a process running as a different user, you can use sudo:

$ sudo killall firefox

You can also kill a process that has been running for a certain period of time with the -o and -y flags. So, if you want to kill a process that has been running for more than 30 minutes, use:

$ killall -o 30m <process-name>

If you want to kill a process that has been running for less than 30 minutes, use:

$ killall -y 30m <process-name>

Similarly, use the following abbreviations for the respective units of time:

s   seconds
m   minutes
h   hours
d   days
w   weeks
M   months
y   years

pkill

Killing processes with the pkill command Sometimes, you only know part of a program’s name. Just like pgrep, pkill allows you to kill processes based on partial matches. For example, if you want to kill all processes containing the name apache in the name, run:

pkill apache

If you want to use a SIGKILL instead of a SIGTERM, use:

pkill -9 apache

Again, you can also use -SIGKILL instead of -9.

kill

Killing processes with the kill command:

Using the kill command is straightforward. Once you have found out the PID of the process that you want to kill, you can terminate it using the kill command. For example, if you want to kill a process having a PID of 1234, then use the following command:

kill 1234

As we mentioned previously, the default is to use a SIGTERM. To use a SIGKILL, use -9 or -SIGKILL as we have seen before:

kill -9 1234

Using top

Killing processes with the top command:

It is very easy to kill processes using the top command. First, search for the process that you want to kill and note the PID. Then, press k while top is running (this is case sensitive). It will prompt you to enter the PID of the process that you want to kill.