linux进程管理

pstree

进程树查看

ps

用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序

Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中

  • aux
    • u:以用户为中心组织进程状态信息显示
    • a:与终端无关
    • x:与终端无关

| 字段 | 说明 |

  • | : - : | - :
    USER | 进程的属组 |
    PIP | 进程大数字ID号 |
    %CPU | 运行占据的cpu百分比 |
    %MEM | 运行占据的memory百分比 |
    VSZ | 虚拟内存大小(进程的在线性地址空间中真正占有的内存大小)|
    RSS | 常驻内存集(不能被放在交换分区,进程运行时,加载到内存的指令和数据)|
    TTY | 通过哪个终端启动,表示与终端无关
    STAT | 进程状态(R:running、S:interruptable sleeping、D:uninterruptable sleeping、T:stopped 、Z:zombie、+:前台进程、l:多线程进程、N:低优先级进程、<:高优先级进程、s:session leader,一般指bash之类的,,会启动多个子进程、)|
    START | 启动时间 |
    TIME | 运行占据cpu的累计时长 |
    COMMAND | 由某命令启动的相关进程 |

  • -ef:示完整格式的

    • -e:显示所有进程,相当于ax
    • -f :显示完整格式的
  • -ejH:显示进程的子进程

    • -j:显示完整格式的进程信息
    • -H:以进程层级格式显示进程相关信息
  • eFH:以进程层级格式显示进程相关信息

    • -F:比f更完整的格式
  • -eo 或者 -axo

    • o:指明要显示的值,

stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ni: nice值 、pri: priority,优先级 、psr: processor, CPU 、rtprio: 实时优先级

pgrep、pkill

look up or signal processes based on name and other attributes

语法

  • pgrep [options] pattern

  • pkill [options] pattern

  • -u uid: effective user

  • -U uid: real user

  • -t terminal: 与指定终端相关的进程

  • -l: 显示进程名

  • -a: 显示完整格式的进程名

  • -P pid: 显示其父进程为此处指定的进程的进程列表

**只列出进程名为sshd且由root用户拥有的进程

**列出由root用户或daemon用户拥有的进程。

pidof

获取进程的PID号

top

top命令默认以cpu的信息进行排序,我们可以自定义排序

  • M:占据内存百分比

  • T:累积占据CPU时长

  • q:退出命令

  • s:修改刷新时间间隔

  • k:终止指定进程

  • l隐藏第一行

  • 1cpu分别显示

  • t隐藏或显示所有的信息

  • s修改刷新时间

  • k终止指定进程

[root@node1 ~]# top -d 1  # 指定刷新时间1s
[root@node1 ~]# top  -b -n 2   #以批次方式显示,显示2批

htop

交互式的进程查看

vmstat

| 字段 | 说明 |

  • | : - : | - : |
    procs | r:等待运行的进程的个数、b:处于不可中断睡眠态的进程个数 (被堵塞的队列长度)|
    memory | swapd:虚拟/交换内存使用总量、free:空闲物理内存总量、buffer:用于buffer的内存总量、cache:用于cache的内存总量 |
    swap | si:从物理内存到交换内存的速率kb/s、so:数据离开swap的数据速率 |
    io | bi:从块设备读入数据到内存中的速率kb/s、bo:保存数据到块设备的速率 |
    system | in:中断速率、cs:上下文切换速率 |
    cpu | us:用户空间占局的比率、sy、id 、wa 、st |
[root@node1 ~]# vmstat 2      # 2s刷新一次
[root@node1 ~]# vmstat 2 5   
[root@node1 ~]# vmstat -s     #显示内存的统计数据

pmap

报告一个进程内存映射表的情况

[root@node1 ~]# pmap 1 # 报告1进程的内存映射表情况

glances

一个跨平台的监控工具

glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [--password] [-t refresh] [-f file] [-o output]
  • -b: 以Byte为单位显示网卡数据速率;
  • -d: 关闭磁盘I/O模块;
  • -f /path/to/somefile: 设定输入文件位置;
  • -o {HTML|CSV}:输出格式;
  • -m: 禁用mount模块
  • -n: 禁用网络模块
  • -t #: 延迟时间间隔
  • -1:每个CPU的相关数据单独显示

C/S模式下运行glances命令

使用node1主机通过glances连接node2

  • 服务端模式
[root@node2 ~]# glances -s -B 192.168.1.27
Glances server is running on 192.168.1.27:61209
  • 客户端模式
[root@node1 ~]# glances -c 192.168.1.27

dstat

dstat是vmstat的替换工具

  • -c: 显示cpu相关信息;
  • -C #,#,...,total :指明那颗cpu的状态
  • -d: 显示disk相关信息;
  • -D total,sda,sdb,...: 指明哪块磁盘的状态
  • -g:显示page相关统计数据;
  • -m: 显示memory相关统计数据;
  • -n: 显示network相关统计数据;
  • -p: 显示process相关统计数据;
  • -r: 显示io请求相关的统计数据;
  • -s: 显示swapped相关的统计数据;
  • --tcp
  • --udp
  • --unix
  • --raw
  • --socket
  • --ipc
  • --top-cpu:显示最占用CPU的进程;
  • --top-io: 显示最占用io的进程;
  • --top-mem: 显示最占用内存的进程;
  • --top-lantency: 显示延迟最大的进程;

kill

向进程发送控制信号,以实现对进程管理

显示当前系统可用信号
# kill -l
# man 7 signal

常用信号:

    1. SIGHUP: 无须关闭进程而让其重读配置文件;
    1. SIGINT: 中止正在运行的进程;相当于Ctrl+c;
    1. SIGKILL: 杀死正在运行的进程;
    1. SIGTERM:终止正在运行的进程;
    1. SIGCONT:
    1. SIGSTOP:

作业控制

前台作业:通过终端启动,且启动后一直占据终端;
后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端)

  • 让作业运行于后台
运行中的:Ctrl + z
尚未启动的:# COMMAND &

此类作业虽然被送往后台运行,但其依然与终端相关,即送往后台会停止。

如果希望送往后台后,剥离与终端的关系:nohup COMMAND &

  • jobs:查看当前所有的作业
  • fg:把指定的后台作业调回前台
  • bg:让送往后台的作业在后台继续运行
  • kill:终止指定的作业
# fg [[%]JOB_NUM]:把指定的后台作业调回前台
# bg [[%]JOB_NUM]:让送往后台的作业在后台继续运行
# kill [%JOB_NUM]:终止指定的作业
posted @ 2018-08-08 14:19  不具名小咸鱼  Views(141)  Comments(0)    收藏  举报