本文已使用 Google Cloud Translation API 自动翻译。
某些文档最好以原文阅读。
在本文中,我们将了解 Linux 中的进程管理。我们将介绍什么是流程及其工作原理的一些基础知识,然后我们将介绍一些可用于管理流程的工具和技术。
进程是正在执行的程序的实例。当您运行一个程序时,它会创建一个进程。一个进程有许多相关的数据结构,包括打开文件列表、运行线程列表和各种特定于进程的选项。
每个进程都有一个唯一的进程 ID (PID),操作系统使用它来跟踪进程。进程可以被创建和销毁,它们可以处于以下三种状态之一:
有许多工具和技术可用于管理 Linux 中的进程。我们将在这里介绍一些最常见的。
ps 命令用于列出当前正在运行的进程。默认情况下,它只会显示当前用户启动的进程。要查看所有进程,请使用 -A 选项:
ps -A
要查看有关每个进程的更多信息,请使用 -o 选项。例如,要查看每个进程的 PID、命令和用户,请使用以下命令:
ps -o pid,command,user
您可以将许多其他选项与 ps 一起使用。有关完整列表,请参阅 ps 手册页。
top命令类似于ps,但它提供了一个不断更新的进程列表。它还显示其他信息,例如每个进程的 CPU 和内存使用情况。
要退出 top,请按 q。要对进程列表进行排序,请按 o,然后输入排序标准。例如,要按 PID 排序,请使用以下命令:
top -o pid
要查看帮助屏幕,请按 h。
kill 命令用于向进程发送信号。默认情况下,它发送 SIGTERM 信号,请求进程终止。如果进程不响应该信号,您可以使用 -9 选项发送 SIGKILL 信号,强制进程终止。
例如,要终止 PID 为 1234 的进程,请使用以下命令:
kill 1234
要杀死 ID 为 5678 的进程组中的所有进程,请使用以下命令:
kill -9 -5678
您可以使用 kill 发送许多其他信号。有关完整列表,请参阅 kill 手册页。
pkill 命令类似于 kill,但它允许您通过名称而不是 PID 来终止进程。例如,要终止名称为 firefox 的所有进程,请使用以下命令:
pkill firefox
要终止属于用户 jane 的所有进程,请使用以下命令:
pkill -u jane
有关选项的完整列表,请参阅 pkill 手册页。
killall 命令类似于 pkill,但它会杀死与指定名称匹配的所有进程,而不仅仅是它找到的第一个进程。例如,要终止名称为 firefox 的所有进程,请使用以下命令:
killall firefox
要终止属于用户 jane 的所有进程,请使用以下命令:
killall -u jane
有关选项的完整列表,请参阅 killall 手册页。
在本文中,我们介绍了 Linux 中进程管理的一些基础知识。我们已经了解了如何使用 ps、top、kill、pkill 和 killall 命令来管理进程。