终止进程
有时我们可能需要终止不需要的进程。
一个进程可能进入了一个无限循环,或者它可能挂了。
我们可以终止或者停止我们拥有的任何进程。
我们可以使用以下两个命令来终止一个或者多个进程:
- kill
- pkill
kill 和 pkill 命令向进程发送信号,指示它们终止。
每个信号都有一个编号、名称和相关联的事件。
以下是一些最常用的信号及其功能。
编号 | 信号名 | 说明 |
---|---|---|
1 | SIGHUP | 重新加载配置文件 |
2 | SoirNT | 键盘中断 (ctrl+c) |
9 | SIGKILL | 杀死进程 |
15 | SIGTERM | 立即结束进程。 (以受控方式终止进程,以便进行清理) |
18 | SIGCONT | 继续使用 STOP 停止的过程 |
19 | STOP | 停止进程 |
注意:但是,有些进程不应终止,例如 init 进程。
杀死此类进程可能会导致系统崩溃。
超级用户可以杀死系统中的任何进程。
使用 pkill 或者 killall 命令终止进程
或者,我们可以使用 pkill 或者 killall 命令向进程发送终止信号。
# pkill [-options] PIDs
或者
# killall [-options] PIDs
pkill/killall 命令要求我们指定进程的名称而不是 PID。
例如,使用 pkill 命令终止 dtmail 进程。
# pkill dtmail # pgrep -l mail #
Linux列出所有进程
例如,使用“ps -ef”命令列出当前计划在系统上运行的所有进程。
# ps -ef | more
其中:
- UID : 进程所有者的用户名
- PID : 进程的唯一进程标识号
- PPID : 进程的父进程标识号
- STIME : 进程开始的时间 (hh:mm:ss)
- TTY:进程的控制终端。请注意,系统进程(守护进程)显示一个问号 (?),表示该进程在不使用终端的情况下启动。
- TIME :进程的累计执行时间
- CMD :命令名称、选项和参数
Linux中列出系统进程
进程状态 (ps) 命令列出与 shell 关联的进程。
# ps [options]
对于每个进程, ps 命令显示 PID 、终端标识符 (TTY)、累积执行时间 (TIME) 和命令名称 (CMD)。
例如,使用 ps 命令列出系统上当前正在运行的进程。
# ps PID TTY TIME CMD 1442 pts/1 00:00:00 sudo 1448 pts/1 00:00:00 su 1449 pts/1 00:00:00 bash 1666 pts/1 00:00:00 ps
ps 命令有几个选项可用于显示添加进程信息。
- -a :打印有关所有最常请求的进程的信息,进程组领导和与终端无关的进程除外
- -e : 打印当前正在运行的每个进程的信息
- -f :生成完整列表
- -l : 生成一个长列表
- -o 格式:根据格式中给出的格式规范写入信息。可以指定多个 -o 选项。格式规范被解释为所有格式选项参数的空格字符分隔连接。
什么是进程
进程,也称为任务,是程序的运行形式。
程序存储在磁盘上,进程在内存中运行。
进程具有父/子关系。
一个进程可以产生一个或者多个子进程。
多个进程可以并行运行。
使用 kill 命令终止进程
我们可以通过向相关进程发出适当的信号来终止任何进程。
默认情况下,kill 命令发送信号 15,即终止信号。
该信号使进程以有序的方式终止。
kill 命令向一个或者多个进程发送终止信号。
使用 kill 命令的语法如下:
# kill [-signal] PIDs
注意:kill 命令仅终止我们拥有的那些进程。
root 用户可以对任何进程使用 kill 命令。
在终止进程之前,我们需要知道进程的 PID。
我们可以使用 ps 或者 pgrep 命令来定位进程的 PID。
此外,我们可以通过在单个命令行上输入多个 PID 来同时终止多个进程。
让我们看一个 kill 命令的例子。
我们将终止进程“sleep 400”,如下所示。
# ps -ef | grep sleep root 1337 1218 0 07:33 pts/0 00:00:00 sleep 400
# kill -9 1337
# ps -ef | grep sleep #
强制终止进程:信号 9
某些进程会忽略 kill 命令发送的默认信号 15.
如果进程没有响应信号 15,我们可以通过使用信号 9 和 kill 或者 pkill 命令强制它终止。
# kill -9 PID
或者
# pkill -9 process_name
注意:发送信号15不一定会优雅地终止进程。只有当信号被进程捕获时,它才会按顺序清理自己并消失。否则,它就死了。