几个基本命令:
ps --- 查看进程 //格式:ps [选项] -a 显示所有用户的进程 /-u 显示用户名和启动时间 -x 显示没有控制终端的进程 / -e 显示所有进程,包括没有控制终端的进程 -l 长格式显示 / -w 宽行显示,可以使用多个 w 进行加宽显示 -f 做一个更完整的输出 //常用格式:ps -aux 和 ps -ef top --- 动态查看进程 //格式:top [选项] -d 后面可以接秒数,默认是5秒 / -b 以批次的方式执行top -n 与-b搭配,进行几次top的输出结果 -i 不显示闲置或者僵死的进程信息 -c 显示进程的整个命令路径 -s 使top命令在安全模式下运行 -p 指定某些个PID来进行查看检测 & --- 进程后台运行符 //格式:进程 & //运行程序(时),让其在后台执行 ctrl-z --- 进程前台中止符 //格式:进程 (键入ctrl+z) //可以将前台的任务 放到后台中暂停 job --- 查看被挂起的进程 //格式:job fg --- 将作业调回到前台 //格式:fg %num bg --- 让作业在后台运行 //格式:bg %num kill --- 进程中止符 killall --- 进程中止符 pkill --- 进程中止符 nohup --- 解决当退出终端后,工作还会继续运行 //格式:nohup [指令与参数] & 在终端的后台工作
-
进程状态
Linux的进程有三种状态:运行态,就绪态,阻塞态
- 就绪态:此时进程已经分配到资源,此时由于CPU正在被占用,所以会在获得CPU后,进入运行态
- 运行态:进程分配到CPU,正在处理器上运行
- 等待态:因为等待某些事件而暂时不能运行的状态
Linux上的进程状态查看指令:
W指令:
//键入w命令可以查看系统信息
[root@localhost ~]# w
18:59:42 up 6:59, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty2 tty2 Sat15 2days 57.32s 0.92s /usr/libexec/tracker-miner-fs
root pts/1 192.168.220.1 15:30 0.00s 0.03s 0.01s w
//JCPU 以终端代号来区分,该终端所有相关的进程的进程执行时,所消耗的 CPU时间会显示在这里
//PCPU cpu执行程序消耗的时间
//WHAT 用户下在执行的操作
//load average 分别显示系统在过去 1、 5、 15分钟内的平均负载程度。
//FROM 显示用户从何处登录系统
“: 0”的显示代表该用户是从 X Windows 下,打开文本模式窗口登录的
//IDLE 用户闲置的时间,这是一个计时器,一旦用户执行任何操作,该计时器便会被重置
PS指令:
//ps -l 查看当前属于root的进程
[root@localhost ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 7009 7003 0 80 0 - 6672 - pts/1 00:00:00 bash
0 R 0 11523 7009 0 80 0 - 11351 - pts/1 00:00:00 ps
F 代表这个程序标志,表明这个程序的权限
S 代表这个程序的状态,主要的状态有:
+:位于后台的进程组
R 该程序正在运作中
S 该程序目前正在睡眠状态,但可以被唤醒;
D 不可被唤醒的睡眠状态,通常可能是在等待I/O的情况;
T 停止状态,可能是在工作控制(后台暂停)或traced状态;
Z 僵尸状态,程序已经终止但却无法被移除至记忆体外。
(如果查看某个进程信息后面显示<defunct>时,就代表该进程为僵尸进程)
UID/PID/PPID 代表此程序被该UID所拥有/程序的PID号码/此程序的父进程PID号码
C 代表CPU使用率,单位为百分比
PRI/NI 代表此程序被CPU所执行的优先顺序,数值越小代表该程序越快被CPU执行
ADDR/SZ/WCHAN 与内存有关,
ADDR指出该程序在内存的哪个部分,如果是 running的程序,一般会显示-
SZ代表此程序用掉多少内存,WCHAN表示目前程序是否运作中,若为-表示正在运行
TTY 登入者的终端机位置
TIME 使用掉的CPU时间,即此程序实际花费CPU运作的时间
CMD 触发此进程的指令是什么
//查看所有用户执行的进程的详细信息
[root@localhost ~]# ps aux |less
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 179844 13808 ? Ss 12:00 0:03 /usr/lib/systemd/systemd--switched-root --system --deserialize 17
USER 运行进程的用户
PID 进程ID
%CPU CPU占用率
%MEM 内存占用率
VSZ 占用虚拟内存
RSS 占用实际内存 驻留内存
TTY 进程运行的终端
STAT 进程状态 man ps (/STATE)
R 运行
S 可中断睡眠 Sleep
D 不可中断睡眠
T 停止的进程
Z 僵尸进程
X 死掉的进程
Ss s进程的领导者,父进程
S< <优先级较高的进程
SN N优先级较低的进程
R+ +表示是前台的进程组
Sl 以线程的方式运行
START 进程的启动时间
TIME 进程占用CPU的总时间
COMMAND 进程名
TOP命令:
//动态查看TOP进程
[root@localhost ~]# top
top - 19:44:38 up 7:44, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 316 total, 1 running, 315 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
MiB Mem : 1800.6 total, 148.8 free, 1265.0 used, 386.8 buff/cache
MiB Swap: 2079.0 total, 2048.0 free, 31.0 used. 361.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2423 root 20 0 534500 39004 31488 S 0.3 2.1 0:17.84 vmtoolsd
1 root 20 0 179844 13808 9236 S 0.0 0.7 0:03.51 systemd
//top的第一行为任务队列信息
top - 19:44:38 up 7:44, 2 users, load average: 0.00, 0.00, 0.00
//19:44:38 表示当前系统时间
//up 7:44 表示已经启动7小时44分钟
//2 users 当前系统的用户数
//load average: 0.00, 0.00, 0.00 表示每1,5,15分钟的平均负载
//top的第二行为进程统计
Tasks: 316 total, 1 running, 315 sleeping, 0 stopped, 0 zombie
//316 total 表示进程总数
//1 running 表示正在运行进程
//315 sleeping 表示处于休眠状态进程数
//0 stopped 表示停止进程数
//0 zombie 表示僵尸进程数
//top的第三行是CPU占用情况
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
//0.0 us 用户进程占用CPU的百分比
//0.3 sy 系统进程占用CPU的百分比
//0.0 ni 用户进程空间内改变过优先级的进程占用CPU的百分比
//99.3 id 空闲CPU占用的百分比
//0.0 wa I/Owait表示等待输入、输出的进程占用CPU的百分比,
//0.3 hi cpu服务于硬件中断所耗费的时间总额
//0.0 si cpu服务于软件中断所耗费的时间总额
//0.0 st 虚拟机被hypervisor偷去的cpu时间
//第四行是内存硬件显示参数
//第五行是虚拟内存大小
//对于进程信息区内容:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2423 root 20 0 534500 39004 31488 S 0.3 2.1 0:17.84 vmtoolsd
1 root 20 0 179844 13808 9236 S 0.0 0.7 0:03.51 systemd
PID 进程的id
USER 进程所有者的用户名
PR 进程优先级
NI nice值,负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位为KB
RES 进程使用的、未被换出的物理内存大小,单位KB
SHR 共享内存大小,单位KB
S 进程状态
D表示不可中断的睡眠状态
R表示运行状态
S表示睡眠状态
T表示跟踪/停止
Z表示僵死进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程占用的物理内存百分比
TIME+ 进程总计使用的CPU时间,单位为1/100秒
COMMAND 正在运行进程的命令名或者命令路径
如果想要给予进程优先级,则需要调整nice的值。
- nice的值可调整的范围为-20~19
- root可随意调整自己或他人进程的nice值,且范围为-20~19; 一般用户仅可调整自己进程的nice 值,范围为0~19(避免一般用户抢占系统资源)
- 一般用户仅可将nice值调高或者保持
进程的前台和后台:
//&进程后台运行符
//ctrl-z进程前台中止符,可以将前台的任务 放到后台中暂停
//job查看被挂起的进程
//fg将作业调回到前台
//bg让作业在后台运行
进程中断:
kill --- 进程中止符
killall --- 进程中止符
pkill --- 进程中止符
//killall 直接结束所以进程
//kill 需要携带进程号