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 -- 正在执行的可执行程序的路径或命令

posted @ 2016-09-25 20:26  江湖小妞  阅读(436)  评论(0编辑  收藏  举报