标签(空格分隔): Linux
进程的静态查看
查看系统所有进程
-
ps -ef-- 输出来好乱,看不懂..; -
ps aux-- a表示所有与终端相关的进程,u表示所有以用户组织的进程状态的信息,x表示与终端无关的所有进程; ps -lA-
ps -l-- 只查看与shell有关的进程(即在shell上通过命令或者可执行程序创建的进程) -
ps -lU username或者ps -fU username-- 只查看特定用户的进程 -
ps -C 命令-- 只查看发出某个命令产生的所有进程 -
ps -L 进程号-- 查看某个进程的线程 -
ps -eLf或者ps -lLA-- 查看所有进程(包括线程信息)
1. ps -lA
-
UID. 表示进程被哪个用户所拥有; -
PID. 进程的ID; -
PPID. 进程的父进程的ID; -
F. 进程标志。4表示此进程有root权限; -
S. 进程状态。进程的主要状态有:R表示可运行的进程,包括正在运行的进程以及就绪队列中的进程;S表示该进程处于可中断的睡眠状态(等待某一时间的发生或等待某种信号的唤醒);D表示该进程处于不可中断的睡眠状态(不能被信号唤醒,比如等待IO);T表示该进程处于停止状态(不是终止,只是在后台暂停,有作业控制信号导致);Z表示该进程处于僵尸状态(进程已经停止,但是父进程未回收该进程资源); -
C. 该进程使用的CPU的百分比; -
PRI. Priority,表示进程的优先级,数值越小,优先级越高; -
NI. Nice,同样表示进程的优先级,数值越小,优先级越高; -
ADDR. 表示kernel function,指出该进程在内存中的哪个部分; -
SZ. 表示该进程使用的内存大小; -
WCHAN. 睡眠的进程等待的事件。如果正在运行,则显示 - ; -
TTY. 该进程使用哪个命令行终端; -
TIME. 该进程实际使用CPU的时间; -
CMD. 该进程由哪个命令所触发。
2. ps aux
-
VSZ. 该进程使用掉的虚拟内存的大小; -
RSS. 该进程使用掉的内存大小; -
STAT. 该进程的状态,与S一致; -
STARTED. 该进程被触发启动的时间 -
ps aux --sort -pcpu, -pmem-- 排序显示,按CPU使用率从大到小排序,CPU使用率相同则按照内存使用率大小排序
进程的动态查看
使用top命令。
-
top -b -n 2 > file.out-- 以批次方式执行(此时是静态结果),执行2此,并将结果写入文件。
进程的管理
一般是通过信号来管理进程。
-
kill -l-- 查看所支持的信号; -
SIGINT。2号信号,相当于ctr + c来终止一个进程的执行; -
SIGKILL。9号信号,强制终止一个进程; -
SIGSTOP。17号信号,相当于ctr + z 来暂停一个进程的执行,常用来暂停后台进程的执行。 - 给予特定进程一个信号:
-
kill -9 进程号或者kill -SIGSTOP 进程号
进程优先级调整
进程的优先级由内核动态指定,即Priority的值。Priority的值越小,则优先级越高。但是用户是不能随意指定Priority的值的,因此Linux操作系统引入了Nice,取值范围为:[-20, 19],用户可以通过指定Nice的值来调整进程的优先级,二者的关系为:
Priority(new) = Priority(old) + Nice
但并非用户修改了一个进程的Nice指标后,Priority的值就会根据上面的关系式改变。内核会进行分析,最终才能决定最后的Priority的值。
-
nice -n n command-- 执行新命令并赋予Nice值 -
renice n 进程ID-- 对已经存在的进程赋予新的Nice值
查看进程打开的文件
-
lsof -u 用户名-- 显示特定用户的所有进程各自打开的文件 -
lsof -p 进程ID-- 显示某个进程打开的文件 -
lsof +d 目录路径-- 显示某个目录下面所有被打开的文件 -
lsof +D 目录路径-- 递归显示某个目录下的所有被打开的文件
查找正在执行的某个命令或者可执行程序的进程ID
-
pidof-- 正在执行的可执行程序的路径或命令