Linux - 进程查看与管理
标签(空格分隔): 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-- 正在执行的可执行程序的路径或命令
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号