Linux进程管理命令完全指南:从入门到精通

在这篇文章中,我们将讨论Linux中的进程管理。Linux中的一个进程就是一个正在执行的程序。它是程序的运行实例。您执行的任何命令都会启动一个进程。

Linux中的进程类型

在Linux中,进程可以分为两种类型:

  • 前台进程
    依赖于用户输入
    也称为交互式进程
  • 后台进程
    独立于用户运行
    也称为非交互式或自动进程

Linux中的进程状态

Linux系统中的一个进程在创建之后终止之前会经历不同的状态。这些状态包括:

  • 运行中
  • 睡眠中可中断睡眠
    不可中断睡眠
  • 已停止
  • 僵尸
  • 处于运行状态的进程意味着它正在运行或准备运行。
  • 当进程等待资源可用时,它处于睡眠状态。
  • 处于可中断睡眠状态的进程会唤醒以处理信号,而处于不可中断睡眠状态的进程则不会。
  • 当进程收到停止信号时,它会进入停止状态。
  • 僵尸状态是指进程已死亡但进程条目仍存在于表中。

Linux中有哪些进程管理命令?

在Linux中有两个可用的命令来追踪正在运行的进程。这两个命令分别是top和ps。

管理Linux进程的top命令

要追踪您的计算机上运行的进程,您可以使用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
ps命令

术语如下:

术语 说明
PID 进程ID
TTY 终端类型
TIME 进程运行的总时间
CMD 启动进程的命令名称

要使用ps命令获取更多信息,请使用:

$ ps -u
ps -u命令

这里

  • %CPU 表示进程占用的计算能力。
  • %MEM 表示进程占用的内存量。
  • STAT 表示进程状态。

虽然ps命令只显示当前正在运行的进程,但你也可以使用它来列出所有的进程。

$ ps -A 
ps -A命令

这个命令会列出系统中的所有进程,包括当前未运行的进程。

停止一个进程

在Linux中停止一个进程,可以使用’kill’命令。kill命令发送信号给该进程。

有各种不同类型的信号可以发送。然而,最常见的是”kill -9″,也就是”SIGKILL”。

你可以使用以下命令列出所有的信号。

$ kill -L
kill -L命令

默认信号是15,也就是SIGTERM。这意味着如果您只使用kill命令而不带任何数字,它就会发送SIGTERM信号。

杀死进程的语法是:

$ kill [pid]

另外,你也可以选择使用:

$ kill -9 [pid]

此命令将发送一个”SIGKILL”信号给进程。如果进程忽略了普通的终止请求,应该使用此命令。

4. 调整进程的优先级

在Linux中,你可以对进程进行优先级排序。进程的优先级值被称为”nice”值。nice值的范围从-20到19。0是默认值。

top命令输出的第四列是关于优先级值的一列。

Nice值

要启动一个进程并给它设置一个nice值而不是默认值,请使用:

$ nice -n [] [进程名]

要改变一个正在运行的进程的优先级值,请使用以下方式:

renice [] -p 'PID'

总结

这个教程讲解了Linux中的进程管理。主要内容涵盖了实际应用方面的进程管理。理论上讲,进程管理是一个广泛的主题,完全涵盖它超出了本教程的范围。

bannerAds