Linux 命令基础:7 个进程管理命令
假设您是第一次探索 Linux 命令行或进入 Linux 管理。在这种情况下,了解如何使用终端并完成基本任务的底层理解至关重要。为了帮助您掌握这些概念,请查看我之前的两篇文章:
但是,如果您对这些概念感到满意,我们将在本文中进一步提高您的 Linux 知识。我们将研究进程及其管理方法。
那么,进程到底是什么?
在 Linux 中,进程是程序的任何活动(正在运行)实例。但什么是程序?好吧,从技术上讲,程序是存储在机器上的可执行文件。每次运行程序时,您都会创建一个进程。从根本上讲,这很容易管理,这就是我们今天要研究的内容。
入门所需
我建议你在你最喜欢的虚拟机上继续操作。这样,你可以尝试并失败而不会产生任何后果(这绝对是熟悉终端的最佳方式)。
在本演示中,我将启动睡眠过程 500 秒。这种方法可让您查看该过程,而无需我对系统进行任何有意义的更改。
[tcarrigan@client ~]$ sleep 500
^Z
[1]+ Stopped sleep 500
然后我使用Ctrl+Z停止了该进程,以便我们可以使用我们的终端。
1. 列出进程
要显示当前活动的进程,请使用以下ps
命令:
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
3293 pts/0 00:00:00 sleep
3300 pts/0 00:00:00 ps
这里您可以获得有关系统上活动进程的一些信息。您需要注意 PID (唯一进程 ID)、TIME(进程运行的时间量)和CMD(启动进程时执行的命令)。
2. 详细列表(流程)
要查看非常详细的进程列表,您可以使用命令ps aux
。
- a - 所有用户
- u - 显示用户/所有者
- x - 显示终端中未执行的进程(使输出相当长)
您可以在此处看到该命令(输出已根据长度进行了编辑):
[tcarrigan@client ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
tcarrig+ 3293 0.0 0.0 215292 520 pts/0 T 13:41 0:00 sleep 500
root 3380 0.0 0.0 0 0 ? I 13:45 0:00 [kworker/1:1-mm_percpu_wq]
root 3381 0.0 0.0 0 0 ? I 13:45 0:00 [kworker/1:3]
root 3398 0.0 0.0 0 0 ? I 13:46 0:00 [kworker/3:2-ata_sff]
root 3481 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/u8:2-flush-253:0]
root 3482 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/0:1-events]
root 3483 0.0 0.0 0 0 ? I 13:50 0:00 [kworker/0:2]
root 3508 0.0 0.0 0 0 ? I 13:51 0:00 [kworker/3:0-ata_sff]
root 3511 0.0 0.0 18892 7732 ? S 13:52 0:00 systemd-userwork
root 3512 0.0 0.0 18892 7656 ? S 13:52 0:00 systemd-userwork
root 3513 0.0 0.0 18892 7656 ? S 13:52 0:00 systemd-userwork
root 3566 0.4 0.0 432792 8024 ? Ssl 13:54 0:00 /usr/libexec/fprintd
tcarrig+ 3598 0.0 0.0 228208 3948 pts/0 R+ 13:54 0:00 ps aux
3. 通过PID杀死
进程不可避免地会挂起,这时您需要kill
它。您在 CLI 上花费的时间越多,您就越有可能需要该kill
命令。识别进程的最准确方法是通过进程 ID (PID)。
使用以下语法:
[tcarrigan@client ~]$ kill PID
此命令发送SIGTERM信号。但是,如果您正在处理卡住的进程,请添加该-9
选项。
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
3293 pts/0 00:00:00 sleep
4684 pts/0 00:00:00 sleep
40527 pts/0 00:00:00 sleep
40540 pts/0 00:00:00 ps
[tcarrigan@client ~]$ sudo kill -9 3293
[sudo] password for tcarrigan:
[1] Killed sleep 500
4. 通过名称/关键字进行杀戮
使用该killall
命令按名称终止进程。此命令将终止所有具有您指定的关键字/名称的进程。
语法是:
[tcarrigan@client ~]$ killall sleep
这将终止sleep
系统上所有活动的进程(此-9
选项在这里也有效)。以下是示例:
[tcarrigan@client ~]$ ps
PID TTY TIME CMD
2648 pts/0 00:00:00 bash
4684 pts/0 00:00:00 sleep
40527 pts/0 00:00:00 sleep
40540 pts/0 00:00:00 ps
[tcarrigan@client ~]$ killall -9 sleep
[2]- Killed sleep 500
[3]+ Killed sleep 500
接下来的这两个命令是相辅相成的。它们允许您移动/管理后台命令。我将在下面介绍基本的语法;但是,要深入了解这些命令,请参阅我之前关于该主题的文章。
5. 列出后台作业并恢复后台作业
要列出和管理后台作业,我们将使用命令bg
。我启动了一个新sleep 500
进程,然后停止它,将其发送到后台。因此,我们在运行时看到它bg
在下面列出:
[tcarrigan@client ~]$ bg
[1]+ sleep 500 &
6. 将最新作业置于前台
为此,我们将使用命令fg
。这会将最近运行的作业/进程带到前台。以下示例是上述命令的延续。sleep 500
后台的进程现在在后台处于活动状态。让我们把它带到光明中……
[tcarrigan@client ~]$ fg
sleep 500
此命令将我们带到此列表中的最后一条命令。
7. 将特定作业置于前台
再次使用该fg
命令,但选择要置于前台的特定作业(而不是最新的作业)。为此,我们只需将作业/进程名称添加到命令中。
[tcarrigan@client ~]$ fg XXXample
这使得作业XXXample成为焦点。
[ 想要测试您的系统管理员技能?立即进行技能评估。 ]
总结
在今天的 Linux 命令基础中,我们了解了进程及其管理方法。现在,您可以完成常规进程管理任务 — 从列出和终止到在后台和前台之间移动,应有尽有。如果您希望查看其他常规 Linux 管理领域的专用命令列表,请发送电子邮件至enable-sysadmin@redhat.com联系团队,我会尽力为您详细说明。