在Linux中终止进程的Kill,Pkill和Killall命令指南

Linux操作系统附带Kill命令以终止进程。该命令可以继续运行服务器,而无需在重大更改/更新后重新启动。这里谈到的Linux的巨大力量,这是原因,为什么Linux在服务器上的 90%运行,在这个星球上的。

Kill,Pkill和Killall命令示例

Kill命令发送一个信号,一个指定的信号更加完美的过程。 kill命令可以以多种方式直接执行或从shell脚本执行。 从 / usr/bin中使用 kill命令为您提供一些额外的功能来杀死使用 pkill的进程名的进程。 kill命令的常用语法是:
# kill [signal or option] PID(s)
对于kill命令,信号名称可以是:
Signal Name		Signal Value			Behaviour
SIGHUP			      1				Hangup
SIGKILL			      9				Kill Signal
SIGTERM			      15			Terminate
显然,从上面 SIGTERM行为是默认的,并杀死一个进程最安全的方法 。SIGHUP是杀死一个过程 ,SIGTERM不太安全的方法 。SIGKILL是上述三者中最不安全的方式,杀死它终止一个进程而不保存过程。 为了杀死一个进程,我们需要知道进程的 进程ID。 一个 过程是一个程序的一个实例。 每一次一个程序启动时,自动将唯一的 PID是该过程中产生的。 在 Linux中每一个过程中,有一个 pid。 启动时的Linux系统启动的第一个进程是- init进程 ,因此它在大多数情况下分配的 '1'的值。 初始化是主的过程,不能被杀死这种方式,这确保了主进程不被意外杀害 。init将会决定,并允许自己被杀害,其中杀人仅仅是一个关闭的请求。 要知道所有的流程和相应的分配的 PID运行。
# ps -A
示例输出
PID TTY          TIME CMD
1 ?        00:00:01 init
2 ?        00:00:00 kthreadd
3 ?        00:00:00 migration/0
4 ?        00:00:00 ksoftirqd/0
5 ?        00:00:00 migration/0
6 ?        00:00:00 watchdog/0
7 ?        00:00:01 events/0
8 ?        00:00:00 cgroup
9 ?        00:00:00 khelper
10 ?        00:00:00 netns
11 ?        00:00:00 async/mgr
12 ?        00:00:00 pm
13 ?        00:00:00 sync_supers
14 ?        00:00:00 bdi-default
15 ?        00:00:00 kintegrityd/0
16 ?        00:00:00 kblockd/0
17 ?        00:00:00 kacpid
18 ?        00:00:00 kacpi_notify
19 ?        00:00:00 kacpi_hotplug
20 ?        00:00:00 ata/0
21 ?        00:00:00 ata_aux
22 ?        00:00:00 ksuspend_usbd
如何定制使用语法“ 的pidof进程的上面的输出。
# pidof mysqld
示例输出
1684
另一种实现上述目标的方法是遵循以下语法。
# ps aux | grep mysqld
示例输出
root      1582  0.0  0.0   5116  1408 ?        S    09:49   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql     1684  0.1  0.5 136884 21844 ?        Sl   09:49   1:09 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root     20844  0.0  0.0   4356   740 pts/0    S+   21:39   0:00 grep mysqld
在我们前进并执行kill命令之前,需要注意以下几点:
  1. 用户可以杀死所有他的进程。
  2. 用户不能杀死另一个用户的进程。
  3. 用户无法杀死系统正在使用的进程。
  4. root用户可以杀死系统级进程和任何用户的进程。
以执行相同功能的另一种方法是执行“ 指派,”指令。
# pgrep mysq
示例输出
3139
要终止上述进程的 PID,使用kill命令,如图所示。
kill -9 3139
上面的命令将其杀死 PID = 3139,其中 PID是过程的 数值的过程。 另一种执行相同功能的方式,可以重写为。
# kill -SIGTERM 3139
类似“ 杀-9 PID'类似于' 杀-SIGKILL PID”,反之亦然。
如何使用进程名称杀死进程
你必须知道进程名称,在杀死和输入错误的进程名称可能会危及你。
# pkill mysqld
一次杀死多个进程。
# kill PID1 PID2 PID3
or
# kill -9 PID1 PID2 PID3
or
# kill -SIGKILL PID1 PID2 PID3
如果一个进程有太多的实例和一些子进程,我们有一个命令 'killall'。这是该系列的唯一命令,它将进程名称替换为进程号作为参数。
句法:
# killall [signal or option] Process Name
杀死所有 的MySQL实例与子进程一起,使用命令如下。
# killall mysqld
如果进程正在运行,可以使用以下任何命令验证进程的状态。
# service mysql status
# pgrep mysql
# ps -aux | grep mysql
这就是现在,从我身边。我很快会在这里再次与另一个有趣和信息的话题。至此,敬请期待,连接到 youcl和健康。 不要忘了给在评论部分您宝贵的意见 。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏