跳转到内容

LPI Linux 认证/创建、监控和终止进程

来自维基教科书,开放的书籍,开放的世界

详细目标

[编辑 | 编辑源代码]

(LPIC-1 版本 5.0)

权重:4

描述
考生应该能够执行基本的进程管理。

关键知识领域

  • 在前景和后台运行作业。
  • 信号程序在注销后继续运行。
  • 监控活动进程。
  • 选择和排序进程以显示。
  • 向进程发送信号。

以下是使用文件、术语和实用程序的部分列表

  • &
  • bg
  • fg
  • jobs
  • kill
  • nohup
  • ps
  • top
  • free
  • uptime
  • pgrep
  • pkill
  • killall
  • watch
  • screen
  • tmux

创建进程

[编辑 | 编辑源代码]

正在运行的应用程序是进程。每个进程都有:进程 ID、父进程 ID、当前目录 PWD、文件描述符表、正在执行的程序、环境变量(从其父进程继承)、stdin、stdout、stderr(标准错误),以及可能还有更多(可选)特征。

Bash 是一个程序,当它被执行时,它就会成为一个进程。每次在 shell 中执行命令时,都会创建一个新进程。除了内置的 shell 命令。它们在 shell 上下文中运行。使用 type 检查命令是否为内置的 shell 命令。

示例

type cp ls which type

监控进程

[编辑 | 编辑源代码]

要实时监控进程,请使用 top。

top - 9:20am  up  2:48,  4 users,  load average: 0.15, 0.13, 0.09
78 processes: 75 sleeping, 3 running, 0 zombie, 0 stopped
CPU states: 15.3% user,  0.3% system,  0.0% nice, 84.2% idle
Mem:   254896K av,  251204K used,    3692K free,       0K shrd,   27384K buff
Swap:  514072K av,       0K used,  514072K free                  120488K cached
 PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
1517 rarrigon   0   0 40816  39M 17372 R    15.0 16.0   2:59 mozilla-bin
1727 rarrigon  19   0   988  988   768 R     0.3  0.3   0:00 top
   1 root      20   0   220  220   188 S     0.0  0.0   0:04 init
   2 root      20   0     0    0     0 SW    0.0  0.0   0:00 keventd

RSS 是任务使用的物理内存总量。SHARE 是任务使用的共享内存量。%CPU 是任务的 CPU 时间份额。%MEM 是任务的物理内存份额。top 运行后,也可以执行交互式命令。

  • 键入 N 按 pid 排序任务。
  • 键入 A 按年龄排序任务(最新的排在最前面)。
  • 键入 P 按 CPU 使用率排序任务。
  • 键入 M 按内存使用率排序任务。
  • 键入 k 终止进程(注意:系统会提示你输入进程的 pid)。

系统启动并运行后,从终端可以查看哪些进程正在运行,方法是使用 ps 程序。

要显示系统中所有进程的长格式,请使用以下命令

ps -Al
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
004 S     0     1     0  0  80   0 -   112 do_sel ?        00:00:04 init
004 S     0   381     1  0  80   0 -   332 do_sel ?        00:00:00 dhcpcd
006 S     0  1000     1  0  80   0 -   339 do_sel ?        00:00:00 inetd
044 R     0  1524  1222  0  79   0 -   761 -      pts/3    00:00:00 ps

ps 程序将显示所有正在运行的进程及其 PID 号和其他信息。要查看登录会话中进程的长格式,请使用

ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
000 S   500  1154  1139  0  80   0 -   724 wait4  pts/1    00:00:00 bash
002 S   500  1285  1283  0  77   0 - 24432 wait_f pts/1    00:00:00 soffice.bin
040 R   500  1442  1435  0  79   0 -   768 -      pts/4    00:00:00 ps
F: Process Flags 002: being created, 040: forked but didn't exec, 400: killed by a signal.
S: Process States: R: runnable, S: sleeping, Z: zompbie
UID: User ID, PID: Process ID, PPID: Parent Process ID, C: Scheduler, PRI: priority
NI: Nice value, SZ: size of routine, WCHAN: name of routine

终止进程

[编辑 | 编辑源代码]

ps 程序将显示所有正在运行的进程及其 PID 号。知道 PID 后,就可以向进程发送信号。

  • SIGSTOP 停止进程。
  • SIGCONT 继续停止的进程。
  • SIGKILL 终止进程。

向进程发送信号的程序称为 kill。

kill -SIGKILL [pid]
kill -63 [pid]
kill -l

默认情况下,进程在前景启动,它是唯一接收键盘输入的进程。使用 CTRL+Z 暂停它。

要在后台启动进程,请使用 &。

bash &
xeyes &

在 bash 进程中,可以启动多个作业。用于操作作业的命令是 jobs。

jobs      # List all the active jobs
bg %job   # Resume job in background
fg %job   # Resume job in foreground
kill %job # Kill background job

当 bash 终止时,所有从会话启动的进程都将收到 SIGHUP 信号。默认情况下,这将终止进程。

要防止进程终止,可以使用 nohup 命令启动程序。

nohup mydaemon

1. 如何控制 PID 为 3196 的 CPU 使用率


华夏公益教科书