Linux进程管理工具

进程状态

  • 运行态:running
  • 就绪态:ready
  • 睡眠态:
    • 可中断
    • 不可中断
  • 停止态:
    • stopped
    • 暂停于内存中,但不会被调度,除非手动启动之
  • 僵死态:
    • zombie

pstree

  • man 手册中的解释
  • display a tree of processes
    • 以树形方式显示进程
[root@2w3i-Cs ~]# pstree
init─┬─auditd───{auditd}
     ├─crond
     ├─dbus-daemon───{dbus-daemon}
     ├─master─┬─pickup
     │        └─qmgr
     ├─6*[mingetty]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd─┬─sshd───bash───man───sh───sh───less
     │      └─sshd───bash───pstree
     └─udevd───2*[udevd]
[root@2w3i-Cs ~]# 

ps

常用组合

  • ps aux
    • a 与终端相关的进程
    • u 以用户为中心组织进程状态信息显示
    • x 与终端无光的进程
  • ps -ef
    • e 显示所有进程
    • f 显示完整格式程序信息
  • ps -eFH
    • e 显示所有进程
    • F 显示完整格式的进程信息
    • H 以进程层级格式显示进程相关信息
  • ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm
    • pid:进程id
    • tid:线程id
    • class:进程调度策略
    • rtprio:实时优先级
    • ni:nice值
    • pri:priority,优先级
    • psr:processor,CPU
    • pcpu:CPU利用率
    • stat:进程状态
    • comm: 运行的命令
  • ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
    • euid:有效的用户ID.(别名 uid)
    • ruid:真实的用户ID
    • tty:控制终端.(别名 tt)
    • tpgid:终端下的前台进程,值为-1表示与终端无光
    • sess:session id.(别名 sid)
    • pgrp:进程组ID
    • ppid:父进程ID
[root@localhost ~]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 07:39 ?        00:00:00 init
root         2     1  0 07:39 ?        00:00:00 [kthreadd/431882]
root         3     2  0 07:39 ?        00:00:00 [khelper/431882]
root       365     1  0 07:39 ?        00:00:00 /usr/sbin/sshd
root       538     1  0 07:46 ?        00:00:00 /usr/bin/python /usr/bin/ssserver -s ::0
nobody     539   538  0 07:46 ?        00:00:00 /usr/bin/python /usr/bin/ssserver -s ::0
nobody     540   538  0 07:46 ?        00:00:00 /usr/bin/python /usr/bin/ssserver -s ::0
root       553   365  0 08:25 ?        00:00:00 sshd: root@pts/1 
root       555   553  0 08:25 pts/1    00:00:00 -bash
root       575   555  0 08:37 pts/1    00:00:00 ps -ef
[root@localhost ~]# 

pgrep, pkill

  • pgrep
    • 语法
      • pgrep [options] pattern
    • 显示模式匹配进程
[root@2w3i-Cs ~]# pgrep -l sshd
910 sshd
1029 sshd
  • pkill

    • 语法
      • pkill [options] pattern
    • 模式匹配,直接杀死运行中的程序
  • pgrep, pkill

    • 常用选项[options]
      • -u uid: effective user
      • -U uid: real user
      • -t terminal 与指定终端相关进程
      • -l 同时显示进程名和PID
      • -f 显示完整格式的进程名
      • -P pid 显示指定pid的其父进程的进程列表

pidof

  • 根据进程名获取其PID
[root@2w3i-Cs ~]# pidof sshd
1029 910
[root@2w3i-Cs ~]# 

top

top - 08:31:26 up 51 min,  1 user,  load average: 0.00, 0.01, 0.01
Tasks:  10 total,   1 running,   9 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    262144k total,    84248k used,   177896k free,        0k buffers
Swap:   131072k total,        0k used,   131072k free,    73424k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                   
    1 root      20   0  2896 1364 1184 S  0.0  0.5   0:00.01 init                       
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd/431882            
    3 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper/431882             
  365 root      20   0  9004 1028  480 S  0.0  0.4   0:00.00 sshd                       
  538 root      20   0 11036 4392 1216 S  0.0  1.7   0:00.00 ssserver                   
  539 nobody    20   0 11532 5304 1708 S  0.0  2.0   0:00.45 ssserver                   
  540 nobody    20   0 11512 5208 1712 S  0.0  2.0   0:00.21 ssserver                   
  553 root      20   0 12056 3696 2960 S  0.0  1.4   0:00.08 sshd                       
  555 root      20   0  3044 1552 1316 S  0.0  0.6   0:00.00 bash                       
  574 root      20   0  2564 1060  888 R  0.0  0.4   0:00.05 top                        
  • 第一行
    • 08:31:26
      • 当前时间
    • up 51 min
      • 系统已运行时间
    • 1 user
      • 当前在线用户
    • load average: 0.00, 0.01, 0.01
      • 平均负载 1分钟,5分钟,15分钟
  • 第二行 Tasks:
    • 10 total
      • 当前总作业数
    • 1 running
      • 当前处于运行状态中作业数
    • 9 sleeping
      • 当前处于睡眠状态中作业数
    • 0 stopped
      • 当前处于停止状态中作业数
    • 0 zombie
      • 当前处于僵死状态中作业数
  • 第三行 Cpu(s):
    • 0.0%us
      • 用户空间占用CPU百分比
    • 0.0%sy
      • 内核空间占用CPU百分比
    • 0.0%ni
      • 用户进程空间内改变过优先级的进程占用CPU百分比
    • 100.0%id
      • 当前空闲CPU百分比
    • 0.0%wa
      • 等待输入输出的CPU时间百分比
    • 0.0%hi
      • 硬中断占用CPU时间百分比
    • 0.0%si
      • 软中断占用CPU时间百分比
    • 0.0%st
      • 被虚拟化偷走的CPU时间百分比
  • 第四行 Mem:
    • 262144k total
      • 总容量
    • 84248k used
      • 已经使用
    • 177896k free
      • 空闲容量
    • 0k buffers
      • I/O缓存 在内存与硬盘之间
    • 73424k cached
      • 高速缓存 在CPU与内存之间
  • 第五行 Swap:
    • 同上第四行
  • 第六行 (高亮标题)

    • PID 进程标识符
    • USER 进程所有者
    • PR 优先级
    • NI nice值
    • VIRT 虚拟内存大小
    • RES 常驻内存
    • SHR 共享内存
    • S 进程状态
    • %CPU CPU时间占用百分比
    • %MEM 内存空间占用百分比
    • TIME+ 使用CPU时间总计
    • COMMAND 执行的命令
  • S 进程状态

    • R 运行态
    • S 可中断睡眠态
    • D 不可中断睡眠态
    • T 停止态
    • Z 僵死态
    • + 前台进程
    • l 多线程进程
    • N 低优先级进程
    • < 高优先级进程
    • s session leader

top内置命令

  • 排序
    • P 键 以占据的CPU百分比排序
    • M 键 以占据的内存百分比排序
    • T 键 以占据的累积CPU时长排序
  • 信息显示
    • 显示 uptime 信息:按 l 键
    • 显示 tasks 及 cpu 信息:按 t 键
    • 显示 memory 信息:按 m 键
  • 退出命令 按 q 键
  • 修改刷新时间间隔 按 s 键
  • 终止指定进程 按 k 键

top常用选项

  • top -d #
    • 指定刷新时间间隔,默认为3秒
  • top -b
    • 以批次方式
  • top -n #
    • 显示多少批次

htop

htop常用选项

  • htop -d #
    • 指定延迟时间
  • htop -u
    • 仅显示指定用户的进程
  • htop -s
    • 以指定字段进行排序

htop常用命令

  • 按 s 键:跟踪选定进程的系统调用
  • 按 l 键:显示选定进程打开的文件列表
  • 按 a 键:将选定的进程绑定至指定CPU核心
  • 按 t 键:显示进程树

pmap

  • pmap - 显示进程的内存映射
  • 语法
    • pmap [options] pid […]
    • pmap -x pid
      • 显示详细格式信息
    • cat /proc//maps

kill

  • kill 命令 向进程发送控制信号,以实现对进程管理
  • 显示当前系统可用信号
    • kill - l
    • man 7 signal
[root@2w3i-Cs ~]# kill -l
 1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP
 6) SIGABRT  7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF 28) SIGWINCH    29) SIGIO   30) SIGPWR
31) SIGSYS  34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX    
[root@2w3i-Cs ~]# 
  • 常用信号

    • 1)SIGHUP:无须关闭进程而让其重读配置文件
    • 2)SIGINT:中止正在运行的进程,相当于Ctrl+C
    • 9)SIGKILL:杀死正在运行的进程
    • 15)SINGTERM:终止正在运行的进程
    • 18)SIGCONT:继续已暂停运行的进程
    • 19)SIGSTOP:暂停正在运行的进程
  • 指定信号的方法

    1. 信号的数字标识;1, 2, 9
    2. 信号完整名称;SIGHUP
    3. 信号的简写名称;HUP
  • 向进程发信号

    • kill [-SIGNAL] PID..
  • 终止“名称”之下的所有进程

    • killall [-SIGNAL] Program

你可能感兴趣的:(Linux)