Linux 进程管理:Linux pkill 0 个改进

在 Linux 中,如果你需要通过命令行终止一个进程(无论什么原因),你可以使用 kill 命令,但是你需要输入欲终止进程的 PID 。有没有不需要进程 PID 的命令方式终止进程的方法?

是的,有一个命令行工具,称为 pkill 命令可以做到。本篇讨论这个命令的使用,通过一些简单的例子理解其用法。讲解之前,值得一提的是本文所有的例子都在 Ubuntu 16.04 LTS 系统上运行通过。

Linux pkill 命令

pkill 命令是一个简单的、终止进程的基本方法。以下是其语法:

pkill [options] pattern
#pkill [命令选项] 模式

下面是这个命令行工具的 man 手册中的说明:

pkill - signal processes based on name and other attributes
# pkill - 基于名称和其它属性对确定的进程发送进程信号

下面是一些问与答(Q&A)方式的举例,帮助你更好理解这个命令的使用。

问1. 如何使用 pkill 命令行?

基本命令非常简单直接 - 唯一需要的是执行 pkill 命令时给它传递一个进程名称的参数。

举例,如果想要终止如 gedit 进程,可以使用如下命令:

$ pkill gedit

就这样,在执行上述命令后,你会看到 gedit 进程(如果正运行着)被关闭。

问2. 如何使 pkill 命令发送不同的信号?

本篇前面提到, pkill 命令发送一个信号给进程,默认地,这个信号是 SIGTERM 。但是如果你想,你可以改变这个信号,使用 --signal 命令选项。

举例:

$ pkill --signal SIGKILL gedit

问3. 如何基于进程启动的完全命令行去终止进程?

默认地,输入的名称(模式)匹配进程名称。然而,如果你想使 pkill 命令精确匹配进程启动的完全命令行,可以使用 -f 命令选项达到目的。

举例,让我们看一下运行在我系统中的两个 ping 命令进程。下面是我使用 ps 命令并用 grep 过滤的 ping 命令进程的屏幕输出:

aman 8942  0.0  0.0  14948  1840 pts/4 T 08:29   0:00 ping www.bing.com
aman 8945  0.0  0.0  14948  1800 pts/4 S 08:30   0:00 ping www.sohu.com

现在假设仅仅想把 'ping www.sohu.com' 的命令进程终止。

如果以下面命令方式:

$ pkill ping

上面2个 ping 命令的进程都会被终止。故为了避免这个我们不期望的结果,我们可以使用 -f 命令选项单独对其中的一个进程进行终止:

$ pkill -f "ping www.sohu.com"

所以,我们以后一命令执行,仅 "ping www.sohu.com" 的命令进程被终止。

问4. 如何使 pkill 对大小写不敏感?

默认 pkill 对大小写敏感,意味着命令中任何大小写不同,含义不同。然而,你可以使用 -i 命令选项改变这个默认设置。

pkill -i [process-name]

问5. 如何让系统日志进程重读其配置文件使配置生效?

可以使用如下命令完成此目的:

$ pkill -HUP syslogd

结论

pkill 命令在你终止进程时超级有用。我们在这里已经讨论了它的一些用法和命令选项。

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!