【Linux基础】系统监控和进程管理指令
目录
ps命令
top命令
kill命令
killall命令
1.1 命令介绍
1.2 命令格式
1.3 常用选项
1.4 示例
1.4.1 交互模式确认
1.4.2 指定信号
shutdown命令
ps命令
作用:查看当前进程信息。
常用选项:
作用 | |
-e | 显示所有进程,包括其他用户的进程。 |
-f | 显示更详细的进程信息,包括父进程 ID (PPID)、启动时间等。 |
-u | 显示进程的用户名和内存使用情况。 |
-aux | 组合选项,显示所有用户的详细进程信息。 |
--sort | 根据指定字段对进程进行排序,例如 --sort=-%mem 按内存使用率降序排列。 |
例子:
root@lubancat-vm:/home/lubancat# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.8 0.3 169040 12708 ? Ss 12:51 0:03 /sbin/init splash
root 2 0.0 0.0 0 0 ? S 12:51 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 12:51 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 12:51 0:00 [rcu_par_gp]
root 5 0.0 0.0 0 0 ? I< 12:51 0:00 [slub_flushwq]
root 6 0.0 0.0 0 0 ? I< 12:51 0:00 [netns]
root 7 0.0 0.0 0 0 ? I 12:51 0:00 [kworker/0:0-rcu_par_gp]
root 8 0.0 0.0 0 0 ? I< 12:51 0:00 [kworker/0:0H-events_highpri]
名词解释:
USER:进程的所有者(启动该进程的用户)。
PID:进程 ID(Process ID),是系统分配给每个进程的唯一标识符。
%CPU:进程占用 CPU 的百分比。表示该进程在最近一段时间内对 CPU 的使用率。
%MEM:进程占用内存的百分比。表示该进程使用的物理内存占总内存的比例。
VSZ:虚拟内存大小(Virtual Memory Size),单位是 KB。表示进程占用的虚拟内存总量,包括正在使用的内存、已分配但未使用的内存,以及交换到磁盘的内存。
RSS:常驻内存大小(Resident Set Size),单位是 KB。表示进程当前实际占用的物理内存(不包括交换到磁盘的部分)。
TTY:进程关联的终端(Terminal)。
- ? 表示进程没有关联到任何终端(通常是后台进程或系统守护进程)。
- pts/0 或 tty1 表示进程关联到具体的终端。
STAT:进程的状态(Process State)。
常见的状态包括:
- R(Running):进程正在运行或可运行(在运行队列中)。
- S(Sleeping):进程正在等待某个事件完成(通常是 I/O 操作)。
- D(Uninterruptible Sleep):进程正在等待 I/O 操作,且不能被中断。
- Z(Zombie):僵尸进程,表示进程已终止,但其父进程尚未回收它。
- T(Stopped):进程被信号暂停(例如按 Ctrl+Z )。
- <:高优先级进程。
- N:低优先级进程。
- +:前台进程组中的进程。
- s:会话领导者(Session Leader)。
- l:多线程进程。(小写的L)
START:进程启动的时间。格式通常是 HH:MM:SS(小时:分钟:秒)。
TIME:进程占用 CPU 的总时间。格式是 HH:MM:SS,表示进程从启动到现在累计使用的 CPU 时间。
COMMAND:启动进程的命令名称或命令行。如果是用 ps aux 命令,会显示完整的命令行;如果是 ps -ef,则可能只显示命令名称。
top命令
作用:常用的分析性能的工具。
例子:
进程 USER PR NI VIRT RES SHR CPU %MEM TIME+ COMMAND 2257 wlc-work 20 0 46124 4192 3320 R 1.0 0.2 0:01.01 top 1 root 20 0 159832 8972 6556 S 0.0 0.4 0:04.40 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp 5 root 20 0 0 0 0 I 0.0 0.0 0:00.14 kworker/0:0-eve 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kb 7 root 20 0 0 0 0 I 0.0 0.0 0:00.00 kworker/u256:0- 8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq 9 root 20 0 0 0 0 S 0.0 0.0 0:00.09 ksoftirqd/0
名词解释:
PR: 进程的优先级。PR 是 "priority" 的缩写。进程的优先级决定了它在 CPU 调度中的优先顺序。数值越小,优先级越高。
NI: 进程的 "nice" 值。nice 值用于调整进程的优先级。数值范围是 -20 到 19,-20 表示最高优先级,19 表示最低优先级。nice 值越低,进程优先级越高。
VIRT: 进程使用的虚拟内存总量,单位通常为 KB 或 MB。它包括进程的代码、数据、共享库和文件映射等所占用的内存。
RES: 进程的常驻内存集(resident set size),即实际驻留在内存中的物理内存量。它不包括交换空间或虚拟内存。
SHR: 进程共享的内存大小,单位为 KB 或 MB。这个值表示该进程所使用的、可以被其他进程共享的内存区域(如共享库)。
CPU:当前进程占用的 CPU 百分比。这表示该进程使用的 CPU 时间的比率。比如,100% 表示进程正在占用一个完整的 CPU 核心。
%MEM:进程占用的物理内存的百分比,表示该进程使用的内存占系统总内存的比例。
TIME+:进程的总 CPU 时间,通常表示为分钟:秒的格式,显示进程自启动以来所消耗的 CPU 时间。
COMMAND:显示进程的命令名,即运行该进程的程序名称。通常是可执行文件的名称。
kill命令
作用:向指定的进程发送信号,常用于结束不再需要的进程或是停止占用过多资源的进程。尽管它叫做 "kill",但它不仅仅是杀死进程,还可以发送多种信号来控制进程的行为。
基本用法:
kill <pid>
参数:
pid:进程的进程号。
该命令默认会发送一个SIGTERM信号(编号15),它请求进程优雅的终止。进程可以选择响应该信号并清理资源后退出。
SIGKILL (9):强制杀死进程,不允许进程进行任何清理。此信号不能被捕获或忽略,是一个“硬杀”命令。
kill -9 <pid>
使用 kill -9 强制结束进程时,进程没有机会进行清理操作,可能会导致数据丢失或文件损坏。因此,在可能的情况下,建议先使用默认的 SIGTERM 信号(kill <pid>)。
其他的信号的作用可以自行去搜索。
killall 进程名
假如你要杀死进程名为firework的进程,可以使用:
killall firework
killall命令
1.1 命令介绍
killall 命令是 Linux 系统中用于通过进程名终止进程的实用工具,其作用与kill命令类似,但无需指定进程PID(进程 ID),而是通过进程名称直接匹配并终止进程。
1.2 命令格式
killall [选项] [进程名]
如果不加选项,默认使用SIGTERM(15)信号,要求进程正常退出。
1.3 常用选项
选项 | 描述 |
-i | 交互模式,确认是否终止每个进程。 |
-e | 精确匹配进程名(区分大小写)。 |
1.4 示例
1.4.1 交互模式确认
每次终止进程前询问用户确认。
killall -i firefox
1.4.2 指定信号
killall -9 firefox
shutdown命令
作用:用于安全地关闭或重启计算机。
基本用法:
shutdown [选项] [时间] [消息]
常用选项:
- -h 或 --halt :关闭系统。
- -r 或 --reboot :重启系统。
- -c 或 --cancel :取消已计划的关机或重启。
- -P 或 --poweroff :关闭系统并断电(默认行为)。
- -k :发送警告消息但不实际关机。
- -t <秒> :指定延迟时间后执行操作。(中间有个空格)
时间参数:
- now :立即执行。
- +<分钟> :指定分钟后执行,如 +5 表示5分钟后。
- HH:MM :在指定时间执行,格式为24小时制。
消息参数:
- 可选的广播消息,通知所有用户。
例子:
#立刻关机
shutdown -h now#五分钟之后关机
shutdown -h +5#晚上22点关机
shutdown -h 22:00#取消计划
shutdown -c#五分钟之后发送警告
shutdown -k +5 "系统即将关闭"