进程管理、工作管理

一.ps
     ps -l                              //仅查看自己的bash相关进程
      ps aux                           //查看系统所有的进程
     ps -aux --sort %cpu        //按照cpu
      ps aux|grep java             //只查看某个进程
     ps axo pid,%cpu,%mem,comm    //定制某些列
     pgrep -U root              //过滤出由root产生的进程
     pgrep -G student         //过滤出所属组为strdent的进程
     pidof firefox-bin         //显示firefox-bin的pid.pidof必须给出进程的全名

二.top   动态显示进程
      top                                      //默认5s更新一次
     top -d 2                               //每2s更新一次
     top -b -n 2 >/tmp/top.txt       //将top的信息进行2次,结果输出到/tmp/top.txt中
     top -d 2 -p 13639                 //查看PID为"13639"的进程,每2s更新一次
     top -p 13696                        //查看PID为"13696"的进程
top界面下:
     r                        //修改NI的值。
     q                       //退出top.
     P                       //以CPU使用资源排序。
     M                      //以内存使用资源排序。

三.pstree
     pstree -A              //显示出进程树,各进程之间的连接以ASCII字符连接
     pstree -Aup          //显示出进程树,ASCII连接,同时显示拥有人和PID

四.kill
怎么控制程序?通过给予程序一个信号(singal)去告之该进程你想让它做什么!
主要的信号:
    15  //默认信号,正常结束某个程序。
     9 //强制结束。会产生垃圾文件。
    1    //启动被终止的进程,可以让该PID重新读取自己的配置文件,类似重新启动。
怎么传送一个信号给某个进程呢?用kill或killall
    kill 6316               //即:kill -15 6316
    kill -9 6316           //强制结束
    killall -9 httpd       //按照名字杀进程,有的不止一个进程.将所有以httpd启动的进程都干掉。
    pkill -9 httpd         //与killall类似,但是如果给出的进程名不完整,killall会报错,pkill不会。

五.进程优先级
进程优先级,用Nice的值来表示。范围:-20~19。数字越小,优先级越高。
所有进程的优先级默认为0.
仅root用户可以把进程优先级调高;普通用户可以调低,不能调高,想调多低调多低。
    ps -axo pid,nice,comm   //查看进程优先级
    nice -n 5 vim test.txt      //当程序还没有运行时,制定优先级
    renice 5 4478                 //将已经运行的程序的优先级进行调整。也可以在top界面下输入"r"来调整。父进程的nice改变之后,该进程的         
                                               子进程的nice也会继承为5.

六.工作管理(job control):在单一的终端下同时进行多个工作的行为管理。
通过vim /etc/security/limits.conf   设置用户同时可以登录的连接数。有些情况下,可能只有一个连接来工作。此时就要用到job control了
放入后台的工作想要运行,必须不能够与用户互动。
bash只能管理自己的工作而不能管理其他bash的工作,即使你是root用户也不能将别人的bash下的job 拿过来执行。

    cp -a /usr/ .  &      //"&"用于将一个程序放到后台运行.由于"cp -a /usr/ ."运行地太慢,所以放到后台。
     Ctrl + z               //暂停。将正在运行的进程暂停掉
     fg[%num]           //从后台拿到前台,并且在前端工作
     bg[%num]          //把状态激活,并放到后台执行
     jobs                   //列出job数和名称
    kill [%num]      //根据job号干掉工作

**************************************
ps -l  //仅查看自己的环境变量有关的进程,即最上层的父进程是你自己的bash而没有扩展到init这个进程去。结果如下:
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S     0     4565  4504  0   75   0      -     1194   wait      pts/1        00:00:00 bash
4 R    0     6536  4565  0   77   0       -     1113     -         pts/1        00:00:00 ps

各字段含义:
F:
S:进程状态。R:运行;S:睡眠; T:停止;Z:僵尸;D:不可被唤醒的睡眠。
UID/PID/PPID: 进程拥有人;进程号;父进程的PID。 
C:  CPU使用率
PRI/NI:  Primary/Nice的缩写,代表此进程被cpu执行的优先级,数值越小优先级越高。
ADDR/SZ/WCHAN:
TTY:  登陆者的终端机位置。若为远程终端则使用动态终端接口(pts/n)
TIME: 此进程实际花费CPU运行的时间。
CMD: 造成此程序的触发进程的命令。

ps -aux   //或"ps aux",结果如下:
  USER    PID   %CPU  %MEM  VSZ    RSS   TTY  STAT  START  TIME   COMMEND
-----------------------------------------------------------------------------------------
  root     1     0.0  0.0   2040   636    ?   Ss    09:01  0:00   init[5]
  apache   8683  0.0  0.9   83384  9992   ?   Z     14:33  0:00   /usr/sbin/thhpd<defunct> ##后面有<defunct>说明也是僵尸进程。

各字段含义:
USER:进程拥有人
PID:进程ID,缺省时以PID这一列排序
%CPU:
%MEM:
VSZ:该进程使用掉的虚拟内存量
RSS:使用的真实内存的大小
TTY:"?"说明该进程不属于任何终端,在进入终端之前就已经运行了。
STAT:进程状态。Ss:睡眠。Z:僵尸。
START:该进程被触发启动的时间。
TIME:进程持续时间。
COMMEND:指哪个指令产生的进程。init(5)是所有进程的父进程,它的进程号永远是"1"。

top  动态查看进程的变化,结果如下
结果如下:
top - 21:41:15 up  1:21,  2 users,  load average: 2.10, 1.73, 1.06
Tasks: 131 total,   3 running, 126 sleeping,   0 stopped,   2 zombie
Cpu(s): 22.0%us, 64.6%sy,  6.6%ni,  0.0%id,  5.8%wa,  1.0%hi,  0.0%si,  0.0%st
Mem:   2937108k total,  1093084k used,  1844024k free,   127408k buffers
Swap:  2096472k total,        0k used,  2096472k free,   740744k cached

PID   USER   PR   NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
-----------------------------------------------------------------------
4220  root   15   0  62888  20m 5804 S 27.1  0.7   1:40.98 Xorg 

第一行:目前的时间是21:41:15
       开机到现在所经过的时间:up  1:21
       已经登入系统的用户人数:2 users
       系统在1,5,15分钟的平均工作负载。代表在1,5,15分钟,系统平均要负责运行几个进程(工作)。batch计划任务在系统负载小于0.8时才会执行,它谈到的负   
           载就是这个负载。越小代表越闲置,若高于1得要注意系统压力过于繁复了。
第二行:目前进程总量:131
       后面表示进程在什么状态。最后zombie这个数值,如果不是0,应好好看哪个进程变成僵尸了。
第三行:显示CPU的整体负载。
第四行:目前物理内存使用情况。
第五行:目前虚拟内存使用情况。
第六行:当在top进程中输入命令时显示状态的情况。
PID:进程ID
USER:进程拥有人
PR/NI:进程优先级
VIRT:
RES: 
SHR:
S:
%CPU: 默认按CPU使用率排序。
%MEM:   
TIME+:CPU使用时间的累加
COMMAND:
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值