Linux 中杀死正在运行的进程

在 Linux 中,正在运行的服务、应用程序或脚本的实例称为进程。 当我们运行任何命令、程序或应用程序时,都会为其创建一个进程。 每个进程都有自己的进程 ID,它与特定的用户和组相关联。 如果任何进程消耗太多资源或变得无响应,那么我们可能需要终止它们。 在这种情况下,我们可以使用 kill 命令停止进程而无需重新启动服务器。

在这篇文章中,我们将向我们展示如何杀死 Linux 中正在运行的进程。

先决条件

  • 在 云平台上运行 Linux 的服务器
  • 在我们的服务器上配置的 root 密码

创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择任何具有至少 1GB RAM 的 Linux 操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

查看 Linux 中正在运行的进程

获取所有正在运行的进程列表的最简单和最简单的方法是使用 top 命令。 我们可以运行如下所示的 top 命令来列出所有正在运行的进程:

top

我们将在以下输出中获得所有正在运行的进程:

Tasks: 344 total,   1 running, 297 sleeping,   0 stopped,   0 zombie
%Cpu(s): 22.6 us,  6.0 sy,  0.1 ni, 67.1 id,  3.9 wa,  0.0 hi,  0.4 si,  0.0 st
KiB Mem :  7580260 total,  2103076 free,  3174408 used,  2302776 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  3901388 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                   
 5994 vyom      20   0   44344   4160   3444 R  11.8  0.1   0:00.03 top                                                                       
 2206 vyom      20   0 1046476  89792  60368 S   5.9  1.2   1:15.26 Xorg                                                                      
 2359 vyom      20   0 3471324 216412  97596 S   5.9  2.9   1:58.27 gnome-shell                                                               
 2745 vyom      20   0 1776552 136144  99424 S   5.9  1.8   1:09.93 skypeforlinux                                                             
 2775 vyom      20   0 37.371g 169524 117660 S   5.9  2.2   1:05.09 skypeforlinux                                                             
 5655 root      20   0       0      0      0 I   5.9  0.0   0:00.30 kworker/u8:3-ev                                                           
    1 root      20   0  160356   9464   6632 S   0.0  0.1   0:03.50 systemd                                                                   
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                                                  
    3 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 rcu_gp                                                                    
    4 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 rcu_par_gp                                                                
    6 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kworker/0:0H-kb                                                           
    9 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 mm_percpu_wq                                                              
   10 root      20   0       0      0      0 S   0.0  0.0   0:00.40 ksoftirqd/0                                                               
   11 root      20   0       0      0      0 I   0.0  0.0   0:03.58 rcu_sched                                                                 
   12 root      rt   0       0      0      0 S   0.0  0.0   0:00.01 migration/0                                                               
   13 root     -51   0       0      0      0 S   0.0  0.0   0:00.00 idle_inject/0                                                             
   14 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/0                                                                   
   15 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/1                                                                   
   16 root     -51   0       0      0      0 S   0.0  0.0   0:00.00 idle_inject/1                                                             

我们可以按 k 并输入进程 ID 以直接从顶部界面杀死进程。

使用 ps 命令查找进程

ps 是一个命令行实用程序,它将以指定格式显示正在运行的进程的完整列表。

ps 命令的基本语法如下所示:

ps [OPTION]

每个选项的简要说明如下所示:

  • -a – 显示所有用户的运行进程。
  • -u – 显示每个进程的详细信息。
  • -x – 显示由守护进程控制的进程。

例如,运行以下命令可获取所有进程的详细进程列表。

ps aux

我们将获得以下输出:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.1 160356  9464 ?        Ss   15:51   0:03 /sbin/init splash
root         2  0.0  0.0      0     0 ?        S    15:51   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        I<   15:51   0:00 [rcu_gp]
root         4  0.0  0.0      0     0 ?        I<   15:51   0:00 [rcu_par_gp]
root         6  0.0  0.0      0     0 ?        I<   15:51   0:00 [kworker/0:0H-kb]
root         9  0.0  0.0      0     0 ?        I<   15:51   0:00 [mm_percpu_wq]
root        10  0.0  0.0      0     0 ?        S    15:51   0:00 [ksoftirqd/0]
root        11  0.1  0.0      0     0 ?        I    15:51   0:03 [rcu_sched]
root        12  0.0  0.0      0     0 ?        S    15:51   0:00 [migration/0]
root        13  0.0  0.0      0     0 ?        S    15:51   0:00 [idle_inject/0]
root        14  0.0  0.0      0     0 ?        S    15:51   0:00 [cpuhp/0]
root        15  0.0  0.0      0     0 ?        S    15:51   0:00 [cpuhp/1]
root        16  0.0  0.0      0     0 ?        S    15:51   0:00 [idle_inject/1]
root        17  0.0  0.0      0     0 ?        S    15:51   0:00 [migration/1]
root        18  0.0  0.0      0     0 ?        S    15:51   0:00 [ksoftirqd/1]
root        20  0.0  0.0      0     0 ?        I<   15:51   0:00 [kworker/1:0H-kb]
root        21  0.0  0.0      0     0 ?        S    15:51   0:00 [kdevtmpfs]
root        22  0.0  0.0      0     0 ?        I<   15:51   0:00 [netns]

上面的命令将显示所有正在运行的进程。 我们可以使用 grep 命令和 ps 命令来获取特定进程的 PID。

例如,要获取 Apache 进程的 PID,请运行以下命令:

ps aux | grep apache

我们将获得以下输出:

root      1309  0.0  0.0  73992  4748 ?        Ss   15:52   0:00 /usr/sbin/apache2 -k start
www-data  1310  0.0  0.0 1285068 4620 ?        Sl   15:52   0:00 /usr/sbin/apache2 -k start
www-data  1311  0.0  0.0 1285068 4644 ?        Sl   15:52   0:00 /usr/sbin/apache2 -k start

我们还可以使用 pidof 命令获取特定进程的 PID。

pidof apache2

我们将获得以下输出:

1311 1310 1309

在 Linux 中杀死一个进程

至此,你就知道如何获取任何进程的PID了。 现在,我们可以使用 kill 命令杀死正在运行的进程。

要杀死单个进程,请运行以下命令:

kill PID

或者

kill -9 PID

要杀死多个进程,请运行以下命令:

kill -9 PID1 PID2 PID3

我们还可以按进程名称终止进程。 我们可以使用 pkill 命令按进程名称终止进程。

要终止 Apache 进程,请运行以下命令:

pkill apache2

我们还可以使用 killall 命令按进程名称终止进程:

killall mysqld

本文记录了, Linux 中查找和终止进程。 我们现在可以自行终止任何无响应的进程,而无需重新启动服务器。 在 的 VPS 主机上试一试!

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论