云网牛站
所在位置:首页 > Linux命令 > 在Linux下使用Kill命令的技术点:包括重新加载进程和终止进程

在Linux下使用Kill命令的技术点:包括重新加载进程和终止进程

2019-12-03 10:38:45作者:戴均力稿源:云网牛站

本文介绍在Linux操作系统下使用Kill命令的技术点,包括使用Kill命令重新加载进程和使用Kill命令终止进程。

在Linux下使用Kill命令的技术点:包括重新加载进程和终止进程

 

前言

Linux是一个很棒的高级操作系统,但并不是完美的。有时,某些应用程序可能会开始出现异常行为,并变得无响应或开始消耗大量系统资源。无法响应的应用程序无法重新启动,因为原始应用程序进程永远不会完全关闭,唯一的解决方案是重新启动系统或终止应用程序进程。

有几种实用程序可让你终止错误的进程,而kill是最常用的命令,它在这个时候发挥着巨大的作用,以下为你讲解这方面的技术。

参考:杀掉Linux中进程的使用示例:使用ps,kill,killall,pkill,top命令

 

kill命令的使用方法

kill是大多数Bourne衍生的shell(例如Bash和Zsh)中内置的shell,在shell程序和独立的/bin/kill可执行文件之间,命令行为略有不同。

使用type命令显示系统上包含kill的所有位置:

$ type -a kill

kill is a shell builtin

kill is /bin/kill

上面的输出表明,内置的shell优先于独立的可执行文件,并且在你键入kill时将使用它。如果要使用二进制文件,请键入文件/bin/kill的完整路径。在本文中,我们将使用内置的Bash。

kill命令的语法采用以下形式:

kill [OPTIONS] [PID]..

kill命令将信号发送到指定的进程或进程组,使它们根据该信号进行操作,未指定信号时,默认为-15(-TERM)。

最常用的信号是:

1、1 (HUP)-重新加载进程。

2、9 (KILL)-杀死一个进程。

3、15 (TERM)-优雅地停止一个进程。

要获取所有可用信号的列表,请使用-l选项调用命令:

$ kill -l

在Linux下使用Kill命令的技术点:包括重新加载进程和终止进程

可以用三种不同的方式指定信号:

1、使用数字(例如-1或-s 1)。

2、使用“SIG”前缀(例如-SIGHUP或-s SIGHUP)。

3、没有“SIG”前缀(例如-HUP或-s HUP)。

以下命令彼此等效:

$ kill -1 PID_NUMBER

$ kill -SIGHUP PID_NUMBER

$ kill -HUP PID_NUMBER

提供给kill命令的PID可以是以下之一:

1、如果PID大于零,则将信号发送到ID等于PID的过程。

2、如果PID等于零,则将信号发送到当前过程组中的所有过程,换句话说,该信号被发送到属于调用kill命令的shell的GID的所有进程,使用ps -efj命令查看进程组ID(GID)。

3、如果PID等于-1,则信号以与用户调用命令相同的UID发送到所有进程,如果调用用户是root用户,则信号将发送到除init和kill进程本身之外的所有进程。

4、如果PID小于-1,则将信号发送到GID等于PID绝对值的过程组eq中的所有过程。

普通用户可以将信号发送到自己的进程,但不能发送信号给其他用户,而根用户可以将信号发送到其他用户的进程。

 

使用kill命令重新加载进程

kill的另一个常见用例是发送HUP信号,该信号告诉进程重新加载其设置。

例如,要重新加载Nginx,你需要向主进程发送信号,Nginx主进程的进程ID可以在nginx.pid文件中找到,该文件通常位于/var/run目录中。

使用cat命令查找主PID:

$ cat /var/run/nginx.pid

30251

一旦找到主PID,请输入以下命令重新加载Nginx设置:

$ sudo kill -1 30251

上面的命令必须以root用户或具有sudo特权的用户身份运行。

 

使用kill命令终止进程

要使用kill命令终止或终止进程,首先需要找到进程ID号(PID),你可以使用诸如top、ps、pidof和pgrep之类的不同命令来执行此操作。

假设Firefox浏览器已无响应,并且你需要终止Firefox进程,要查找浏览器的PID,请使用pidof命令:

$ pidof firefox

该命令将打印所有Firefox进程的ID:

6263 6199 6142 6076

一旦知道了进程号,就可以通过发送TERM信号来终止所有进程号:

$ kill -9 2551 2514 1963 1856 1771

你可以将上述命令组合为一个命令,而不是先搜索PID然后终止进程:

$ kill -9 $(pidof firefox)

 

结论

kill命令用于向进程发送信号,最常用的信号是SIGKILL或-9,它终止给定的进程。

 

相关主题

在Linux系统中安装fkill、gkill命令的方法

Linux命令子频道
精选文章
热门文章