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 使用率