Linux进程管理命令完全指南:从入门到精通
在这篇文章中,我们将讨论Linux中的进程管理。Linux中的一个进程就是一个正在执行的程序。它是程序的运行实例。您执行的任何命令都会启动一个进程。
Linux中的进程类型
在Linux中,进程可以分为两种类型:
- 前台进程
依赖于用户输入
也称为交互式进程 - 后台进程
独立于用户运行
也称为非交互式或自动进程
Linux中的进程状态
Linux系统中的一个进程在创建之后终止之前会经历不同的状态。这些状态包括:
- 运行中
- 睡眠中可中断睡眠
不可中断睡眠 - 已停止
- 僵尸
- 处于运行状态的进程意味着它正在运行或准备运行。
- 当进程等待资源可用时,它处于睡眠状态。
- 处于可中断睡眠状态的进程会唤醒以处理信号,而处于不可中断睡眠状态的进程则不会。
- 当进程收到停止信号时,它会进入停止状态。
- 僵尸状态是指进程已死亡但进程条目仍存在于表中。
Linux中有哪些进程管理命令?
在Linux中有两个可用的命令来追踪正在运行的进程。这两个命令分别是top和ps。
管理Linux进程的top命令
要追踪您的计算机上运行的进程,您可以使用top命令。
$ top

top命令实时显示正在运行的进程列表,以及它们的内存和CPU使用情况。让我们更好地了解输出内容:
- PID: 分配给每个进程的唯一进程ID。
- User: 进程所有者的用户名。
- PR: 调度时给予进程的优先级。
- NI: 进程的”nice”值。
- VIRT: 进程使用的虚拟内存量。
- RES: 进程使用的物理内存量。
- SHR: 与其他进程共享的内存量。
- S: 进程状态’D’ = 不可中断睡眠
‘R’ = 运行中
‘S’ = 睡眠中
‘T’ = 被跟踪或已停止
‘Z’ = 僵尸 - %CPU: 进程使用的CPU百分比。
- %MEM: 进程使用的RAM百分比。
- TIME+: 进程消耗的总CPU时间。
- Command: 用于激活进程的命令。
你可以使用上下箭头键在列表中上下导航。按下q键退出。要终止一个进程,用上下箭头键选择进程,然后按下’k’键。
另外,您也可以使用kill命令,稍后我们将会看到。
2. ps命令
ps命令是”进程状态”(Process Status)的缩写。它显示当前运行的进程。然而,与top命令不同,生成的输出不是实时的。
$ ps

术语如下:
术语 | 说明 |
---|---|
PID | 进程ID |
TTY | 终端类型 |
TIME | 进程运行的总时间 |
CMD | 启动进程的命令名称 |
要使用ps命令获取更多信息,请使用:
$ ps -u

这里
- %CPU 表示进程占用的计算能力。
- %MEM 表示进程占用的内存量。
- STAT 表示进程状态。
虽然ps命令只显示当前正在运行的进程,但你也可以使用它来列出所有的进程。
$ ps -A

这个命令会列出系统中的所有进程,包括当前未运行的进程。
停止一个进程
在Linux中停止一个进程,可以使用’kill’命令。kill命令发送信号给该进程。
有各种不同类型的信号可以发送。然而,最常见的是”kill -9″,也就是”SIGKILL”。
你可以使用以下命令列出所有的信号。
$ kill -L

默认信号是15,也就是SIGTERM。这意味着如果您只使用kill命令而不带任何数字,它就会发送SIGTERM信号。
杀死进程的语法是:
$ kill [pid]
另外,你也可以选择使用:
$ kill -9 [pid]
此命令将发送一个”SIGKILL”信号给进程。如果进程忽略了普通的终止请求,应该使用此命令。
4. 调整进程的优先级
在Linux中,你可以对进程进行优先级排序。进程的优先级值被称为”nice”值。nice值的范围从-20到19。0是默认值。
top命令输出的第四列是关于优先级值的一列。

要启动一个进程并给它设置一个nice值而不是默认值,请使用:
$ nice -n [值] [进程名]
要改变一个正在运行的进程的优先级值,请使用以下方式:
renice [值] -p 'PID'
总结
这个教程讲解了Linux中的进程管理。主要内容涵盖了实际应用方面的进程管理。理论上讲,进程管理是一个广泛的主题,完全涵盖它超出了本教程的范围。