Linux进程查看与管理命令总结

Linux进程查看与管理命令总结

  • 内核的功能:

    • 进程管理

    • 文件系统

    • 网络功能

    • 内存管理

    • 驱动程序

    • 安全功能

  • Process:运行中程序的一个副本。(存在生命周期)

  • Linux内核存储进程信息的固定格式:task struct

    • 多个任务的task struct组件的链表:task list

  • 进程创建:

    • init

      • 父子关系

      • 进程:都有其父进程创建

        • fork(),clone()

    • 进程优先级:

      • 0-139:

        • 1-99:实时优先级:数字越大,优先级越高

        • 100-139:静态优先级:数字越小,优先级越高

        • Nice值:-20,19

      • Big O标准

        • O(1),O(logn),O(n),0(n^2),O(2^n)

    • 进程内存

      • Page Frame:页框,用存储页面数据

        • 存储Page

        • MMU:Memory Management Unit

    • IPC:Inter Process Communicarion(进程通信机制)

      • 同一主机上:

        • signal

        • shm:shared memory

        • semerphor

      • 不同主机上:

        • rpc:remote procecure call(远程过程调用)

        • socket:

  • Linux内核:抢占式多任务

    • 进程类型:

      • 守护进程:在系统引导过程中启动的进程,与终端无关的进程。

      • 前台进程:跟终端相关,通过终端启动的进程

        • 注:也可将在前台启动的进程送往后台,以守护模式运行。

    • 进程状态

      • 运行态:running

      • 就绪态:ready

      • 睡眠态:

        • 可中断:interruptable

        • 不可中断:uninterruptable

      • 停止态:暂停于内存中,但不会被调度,除非手动启动之:stopped

      • 僵死态:zombie

    • 进程的分类:

      • cpu-Bound

      • IO-Bound

  • Linux系统上的进程查看及管理工具:pstree,ps,pidof,pgrep,top ,htop,glances,pmap,vnstat,dstat,kill,pkill,job,bg,fg,nohup,nice,renice,killall,…

    • pstree命令:pstree-display a tree of processes

    • ps命令:

      • /proc/:内核中的状态信息;

        • 内核参数:

          • 可设置其值从而调整内核运行特性的参数;/proc/sys/

          • 状态变量:其用于输出内核中统计信息或状态信息,仅用于查看;

      • 进程:

        • /proc/#:(#:PID)

      • ps-report a snapshot of the current processes

        • ps[options]

          • 选项有三种风格:

            • UNIX options,which may be grouped and must be preceded by a dash。

            • BSD options,which may be grouped and must not be used with a dash。

            • GNU long options,which are preceded by two dashes。

          • 启动进程的方式:

            • 系统启动过程中自动启动:与终端无关的进程;

            • 用户通过终端启动:与终端相关的进程;

          • 选项:

            • a:所有与终端相关的进程;

            • x:所有与终端无关的进程;

            • u:以用户为中心组织进程状态信息显示;

          • 常用组合之一:aux

            • VSZ:虚拟内存集;

            • RSS:Resident Size,常驻内存集;

            • STAT:

              • R:running

              • S:interruptable sleeping

              • D:uninterruptable sleeping

              • T:Stopped

              • Z:zombie

              • +:前台进程

              • I:多线程进程

              • N:低优先进程

              • <:高级优先进程

              • s:session leader

          • 常用组合二:-ef

            • -F:显示完整格式的进程信息;

              • C:cpu utilization

              • PSR:运行于那颗CPU之上

            • -H:以层级结构显示进程的相关信息;

          • 常用组合三:-eFH

          • 常用组合四:

            • o field1,field2,…:自定义要显示的字段列表,以逗号分隔;

              • 常用的field:pid,ni,pri,psr,pcpu,stat,comm,tty,ppid,rtprio

                • ni:nice值

                • pri:priority,优先级;

                • rtprio:real time priority;实时优先级;

    • pgrep,pkill命令:-look up or signal processes based on name and other attributes

      • pgrep[options]pattern

        • -u uid:effective user

        • -U uid:read user

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

        • -l显示进程名;

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

        • -P pid:显示此进程的子进程;

    • pidof命令:

      • 根据进程名,取其pid;

    • top命令;

      • -display Linux processes

        • 排序:

          • P:以占据cpu百分比排序;

          • M:以占据内存百分比排序;

          • T:以占用cup时间排序;

        • 首部信息:

          • uptime信息:I命令

          • tasks及cpu信息:t命令

          • 内存信息:m命令

        • 退出命令:q

        • 修改刷新时间命令:s

        • 终止指定的进程:k

        • 选项:

          • -d #:指定刷新时间间隔,默认为3秒;

          • -b:以批次方式显示;

          • -n #:显示多少批次;

    • uptime命令:显示系统时间、运行时长及平均负载;

      • 过去1分钟、5分钟和15分钟的平均负载;

        • 等待运行的进程队列长度

    • htop命令:

      • 选项:

        • -d #:指定延迟时间间隔;

        • -u UserName:仅显示指定用户的进程;

        • -s COLUME:以指定字段进行排序;

      • 子命令:

        • l:显示选定的进程打开的文件列表;

        • s:跟踪选定的进程的系统调用;

        • t:以层级关系显示各进程的状态;

        • a:将选定的进程绑定至某指定的CPU核心;

    • vmstat命令:

      • -Report virtual memory statistics

      • vmstat [option][delay[count]]

        • procs:

          • r:等待运行的程序的个数;CPU上等待运行的任务的队列长度;

          • b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度;

        • memory:

          • swpd:交换内存使用总量;

          • free:空闲的物理内存总量;

          • buffer:用于buffer的内存总量;

          • cache:用于cache的内存总量

        • swap:

          • si:数据进入swap中的数据速率(kb/s)

          • so:数据离开swap的速录(kb/s)

        • io:

          • bi:从块设备读入数据到系统的速度(kb/s)

          • bo:保存数据至块设备的速率(kb/s)

        • system:

          • in:interrupts,终端速率;

          • cs:context switch,上下文切换的速率;

        • cpu

          • us:user space

          • sy:system

          • id:idle

          • wa:wait

          • st:stolen

      • 选项:

        • -s:显示内存统计数据;

    • pmap命令:-report memory map of a process

      • pmap [options]pid[…]

        • -x:显示详细格式的信息;

      • 另一种查看方式:cat /proc/PIDmaps

    • glances命令: -A cross-platform curses-based monitoring tool

      • 内建命令

      • 常用选项:

        • -b:以Byte为单位显示网上数据速率;

        • -d:关闭磁盘I/O模块;

        • -m:关闭mount模块;

        • -n:关闭network模块;

        • -t #:刷新时间间隔;

        • -1:每个cpu的相关数据单独显示

        • -o{HTML|CSV}:输出格式;

        • -f /PATH/TO/SOMEDIR:设定输出文件的位置;

      • C/S模式下运行glances命令;

        • 服务模式:

          • glances -s -B IPADDR

          • IPADDR:本机的地址,用于监听;

        • 客户端模式

          • glances -c IPADDR

          • IPADDR:是远程服务器的地址

    • dstat命令:-vversatile tool for generating system resource statistics

      • dstat[-afv][options…][delay[count]]

      • 常用选项:

        • -c: 显示cpu相关信息

          • -C #,#,…,total

        • -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-latency: 显示延迟最大的进程

    • kill命令: -terminate a process向进程发送控制信号,以实现对进程管理

      • 显示当前系统可用信号:

      • kill -l

      • 每个信号的表示方法有三种;

        • 1)信号的数字标识;

        • 2)信号的完整名称;

        • 3)信号的简写名称;

      • 向发信号:

      • kill[-s signal|-SIGNAL]PID…

      • 常用信号:

        • 1) SIGHUP: 无须关闭进程而让其重读配置文件

        • 2) SIGINT: 中止正在运行的进程;相当于Ctrl+c

        • 9) SIGKILL: 杀死正在运行的进程

        • 15) SIGTERM:终止正在运行的进程

        • 18) SIGCONT:

        • 19) SIGSTOP: 指定信号的方法:

        • (1) 信号的数字标识;1, 2, 9

        • (2) 信号完整名称;SIGHUP

        • (3) 信号的简写名称;HUP

    • killall命令: -kill processes by name

      • killall [-SIGNAL] program

原创文章,作者:502795641,如若转载,请注明出处:http://www.178linux.com/44497

(0)
502795641502795641
上一篇 2016-09-07
下一篇 2016-09-07

相关推荐

  • 内核编译

    内核编译 程序包的编译安装 ./configure,make,make install./configure检查编译环境依赖关系,并设定参数make 执行编译操作make install 安装二进制库文件帮助文档配置文件 前提:开发环境(开发工具,开发库),头文件:/usr/include 开源:源代码 发行版,就是把源代码拿过来,组织成程序。  …

    Linux干货 2016-09-19
  • LVS介绍及工作原理图解

    一、LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,官方站点是:http://www.linuxvirtualserver.org。现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须重新编译内核以支持LVS功能模块,但是从Linux2.…

    2017-12-06
  • clsass 10 shell编程(二)及文件查找及压缩

    一、选择执行(条件判断if) 流程控制 过程式编程语言:     顺序执行     选择执行     循环执行 使用read 命令来接受输入 使用read 来把输入值分配给一个或多个shell变量:   &nb…

    Linux干货 2016-08-18
  • 相关练习

    1、请使用命令行展开功能来完成以下练习:    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d  mkdir /tmp/{a,b}_{c,d}    (2)、创建/tmp/mylinux目录下的:  mkdir -pv /tmp/mylinux/{bin,boot/grub,de…

    Linux干货 2016-11-05
  • Linux中/etc目录下常用的配置文件及其含义总结

         在linux中有一个很重要的思想就是一切皆文件,也就是说所有的系统参数的配置都是保存在各种各样的配置文件当中的,这点Linux和Windows有很大的差别。      因为Linux中有众多配置文件,学习起来难免会不容易记忆,所以在此把一些常用的配置文件记录下来,做一个归纳总结。根据FHS…

    Linux干货 2017-03-26

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-10 11:04

    尽量能将笔记转换为优秀的博客来,而不是粘贴笔记,相信自己,加油!!!