使用这些Linux命令强迫辞职行为不端的过程
解释的意思最简单的词是“过程”,它是一个运行实例的任何应用程序或程序在您的系统上。 你可能同时运行多个应用程序,如浏览、听音乐致力于终端等。有许多与这些相关的后台进程运行的应用程序的用户。
每一个应用程序或程序运行在您的系统上创建多个进程与单一应用程序相关联。 有时这可能是一个问题,摆脱这些过程是唯一的选择。
“杀死”的过程是一个有用的选择Linux提供你停止正在进行的过程,是一个前台进程或后台进程。 在本文中,我们将回顾的命令kill,pkill和killall强制退出系统上的任何过程。
为什么杀死一个过程?
杀死一个过程的理解这个概念是重要的在本教程之前。 杀人似乎是一个非常残酷的方式来表达这一概念,但这比喻是什么意思是强行中止进程。
为什么中止或退出一个持续的过程? 当多个进程在后台运行,或者其中的一些不当的可能故障,可能会导致您的系统。 这延迟你的任务故障过程可能冻结您的系统。
有时,放弃所有的行为不端的过程似乎是唯一的选择系统恢复正常。 Linux可以杀死一个进程使用pid或者进程名称。
使用pgrep命令
大部分的Linux用户熟悉grep命令。 的pgrep命令可用于类似的grep.
pgrep命令使用时,显示pid运行的过程中指定的命令。 这个命令将被证明是非常有用的,同时使用pkill命令。
一般的语法:
pgrep [options] [pattern]
重要的选择pgrep命令
选项 |
描述 |
-u |
特定的用户所拥有的进程id列表 |
-c |
计算数量的匹配过程 |
-I |
只列出流程名称 |
-a |
过程的完整路径名称列表 |
让我们演示的使用pgrep命令使用一个例子。
pgrep -u gaurav gnome
在这里,我们希望看到的pids过程的gnome用户所有的“gaurav”。 选项-u允许您列出pids的过程由一个特定的用户。 在这种情况下,用户gaurav。
输出:
gaurav@ubuntu:~$ pgrep -u gaurav gnome 1752 1755 1909 1922 2021 2576 4279 gaurav@ubuntu:~$
我们推进本教程,pgrep命令将帮助我们确认如果进程被杀或仍在运行。
现在让我们转向pkill命令和执行。
使用pkill命令
您可以使用pkill在Linux中命令杀死进程使用进程名称。 即使你不知道pid一些过程,甚至你可以杀了那个特定进程使用pkill命令。
可以指定进程的完整名称或部分名称同时使用pkill命令。 即使你输入部分名称的过程pkill命令将匹配所有正在运行的流程的匹配名称中输入的命令。
语法:
pkill [options][process_name_pattern]
例子:
让我们显示使用当前正在运行的进程top命令。 您还可以使用ps命令列表的过程。
top
top - 14:24:02 up 3:12, 1 user, load average: 0.29, 0.48, 0.58 Tasks: 221 total, 1 running, 172 sleeping, 0 stopped, 1 zombie %Cpu(s): 5.6 us, 1.0 sy, 0.0 ni, 92.9 id, 0.4 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 3928240 total, 610456 free, 2233152 used, 1084632 buff/cache KiB Swap: 4083708 total, 3378884 free, 704824 used. 1187268 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 4077 gaurav 20 0 3312128 673480 118360 S 19.6 17.1 15:13.23 Web Content 3712 gaurav 20 0 3953008 453544 116476 S 4.0 11.5 9:28.39 MainThread 2010 gaurav 20 0 4084232 111096 45024 S 1.7 2.8 3:14.85 gnome-shell 1197 root 20 0 1039612 33704 22988 S 1.0 0.9 3:04.42 Xorg 1426 couchdb 20 0 3772396 16908 2520 S 0.7 0.4 1:50.83 beam.smp 3288 gaurav 20 0 722480 25048 18272 S 0.7 0.6 0:06.84 gnome-terminal- 3915 gaurav 20 0 2804900 231524 111228 S 0.7 5.9 0:54.42 Web Content 4146 gaurav 20 0 3017924 245304 120604 S 0.7 6.2 2:01.21 Web Content 4417 gaurav 20 0 2964208 234396 119160 S 0.7 6.0 0:59.90 Web Content 4860 gaurav 20 0 3066800 372920 132544 S 0.7 9.5 0:48.20 Web Content 16007 gaurav 20 0 41944 3780 3116 R 0.7 0.1 0:00.28 top
使用top命令将显示多个进程在终端。 让我们试着显示流程与特定名称。 我们将使用grep命令来显示一个进程的名称匹配的字符串“mongo”。
top | grep -i mongo
注意:在这里,我要使用- I选项搜索不区分大小写的。
该命令的输出将显示流程匹配的名字“mongo”
1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.22 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.25 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.27 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.29 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.31 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.33 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.36 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.38 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.40 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.43 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.45 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.48 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.3 0.1 1:03.49 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.52 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.54 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.57 mongod
现在,我们将使用pkill命令杀死进程名为“mongo”。
pkill mongo
这个命令将杀死mongo过程。 我们可以确认是否已被迫退出使用pgrep命令显示pid正在运行的进程根据由用户指定的标准。
gaurav@ubuntu:~$ pgrep mongo gaurav@ubuntu:~$
这个命令将返回没有值。 这个确认过程“mongo”现在使用死亡pkill命令。
选择常用的pkill命令
在使用pkill命令我们将需要选择适当的和容易使用pkill命令。
选项 |
描述 |
-f |
匹配完整的参数包括空格,引号,特殊字符 |
-u |
通知pkill过程匹配过程由指定的用户 |
-1 |
重新加载的过程 |
-9 |
死亡的过程 |
-15 |
优雅地中止过程 |
让我们看一个例子pkill命令使用-f选择。
上有两个命令正在执行终端,如下所示。
ping bbc.com ping youtube.com
发起的流程ping命令。 现在,假设我们希望只有一个进程终止“ping youtube.com”然后我们必须使用-f选择与pkill命令杀死进程与一个特定的名字从进程名称包括空格和引号。
命令:
gaurav@ubuntu:~$ pkill -f "ping youtube.com" gaurav@ubuntu:~$
结果:
gaurav@ubuntu:~$ ping youtube.com PING youtube.com (142.250.67.206) 56(84) bytes of data. 64 bytes from bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=1 ttl=117 time=30.9 ms 64 bytes from bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=2 ttl=117 time=121 ms 64 bytes from bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=206 ttl=117 time=86.5 ms 64 bytes from bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=207 ttl=117 time=105 ms Terminated gaurav@ubuntu:~$
在这里,“ping youtube.com“流程现在死亡,”ping bbc.com“还在终端上运行。
在情况下,如果我们使用了pkill ping命令,它就会杀了ping流程,这是不可取的。
信号使用pkill命令
pkill部队戒烟的过程通过发送特定的信号,这一过程。 有三个可能的信号pkill命令可以发送到过程根据用户提供的命令。
下面是列表中可用的信号。
信号 |
规范 |
1(HUP) |
重新加载指定的过程 |
9(KILL) |
杀死指定的过程 |
15(TERM) |
温柔地停止或中止指定的过程 |
对于本教程,我们将严重依赖KILL信号。 让我们通过一些例子来更好地理解它。
使用pgrep命令的pid匹配对apache的名称。
gaurav@ubuntu:~$ pgrep apache 1218 10402 10403 gaurav@ubuntu:~$
pkill -KIll apache
或者你也可以用命令(如与数字。 1、9、15)
pkill -9 apache
上面所示的命令都杀死了apache进程。 确认的pgrep再次命令。
gaurav@ubuntu:~$ pgrep apache gaurav@ubuntu:~$
随着pgrep命令返回任何输出,证明过程apache已经被杀死。
结论
在本教程中,我们了解到了pkill命令,以及它是如何用于杀死进程名称直接的使用过程。 我们也了解pgrep命令用于获取进程的进程id由任何特定的用户。 的pgrep命令允许我们再确认如果进程被杀