Linux进程相关的内容及命令小结(一)

概念:进程,一个活动的程序实体的副本,拥有生命周期,一个进程可能包含一个或多个执行流;
 
进程的创建进程:
  每个进程的组织结构是一致的;
  内核在正常启动并且全面接管硬件资源之后,会创建一个Init的进程;而这个名叫init的进程负责用户空间的进程管理;
  CentOS5及以前:SysV Init,Classic Init
  在启动系统时,Init通过写脚本的方式来创建各个子进程;利用shell来实现,因此其执行速度非常慢;导致系统的启动速度和进程的创建速度都非常慢;
  CentOS6:upstart,有Ubuntu研发的新型的Init进程;可以并行的启动某些有关联的服务进程,在创建进程的时候,可以多线创建进程;如果有多个CPU或这有多颗CPU核心的话,其进程的创建速度会有比较明显的变化;第一个进程名称仍然是init;
  CentOS7:Systemd,参考了MAC OS的启动逻辑开发一款新版的init程序;其可以以其自身独立完成整个操作系统的启动工作;也就是说,在开机并加载内核之后,只需要启动一个systemd进程就可以将其他各服务进程启动起来,从而引导整个系统启动;

除了init进程之外,其他的各个进程都是由其父进程创建的;由fork()系统调用来实现的;
 每个父进程通过fork()系统调用,复制自身的数据给子进程使用;这种复制方式不是立即复制,而是写时复制(CoW);
 终止进程:
  当计算机开机的时候,内核(kernel)只建立了一个init进程。Linux内核并不提供直接建立新进程的系统调用。剩下的所有进程都是init进程通过fork机制建立的。新的进程要通过老的进程复制自身得到,这就是fork。fork是一个系统调用。进程存活于内存中。每个进程都在内存中分配有属于自己的一片空间,当进程fork的时候,Linux在内存中开辟出一片新的内存空间给新的进程,并将老的进程空间中的内容复制到新的空间中,此后两个进程同时运行。

--------------------------------------------------------------------------------------------------------

进程优先级:
  0-139
  1-99:实时优先级,数字越大优先级越高;在系统启动时启动的进程;
  100-139:静态优先级,数字越小优先级越高;在用户执行某些应用程序的时候启动的进程;
  nice值:
   -20~19:默认的nice值0;
   只有管理员才能使用负整数的nice值,以提升进程的优先级;
   而普通用户只能使用正整数的nice值,以降低进程的优先级;
  划分了140个进程队列;
  Big O标准:
   O(1),O(logN),O(N),O(N^2),O(2^N)

进程的类型:
  按照进程的启动方式:
   守护进程:
    Daemon,通常是在系统引导的过程被启动的,与任何的终端无关;也可以通过终端启动;
   用户进程:
    用户登录到系统之后,通过终端启动的进程;
  按照进程的运行位置:
   前台进程:
    在进程启动之后,进程一直占用标准输出或者标准输入或者同时占用标准输出和标准输入;
   后台进程:
    在进程启动之后,进程不占用标准输出和标准输入;
  按照进程对于资源消耗:
   CPU-Bond:非交互式的进程;
   IO-Bond:编辑器等各种交互式进程;

--------------------------------------------------------------------------------------------------------

Linux系统上与进程有关的命令(查看命令和管理类命令):

pstree:
      pstree - display a tree of processes
      ps:
      ps - report a snapshot of the current processes.
       ps [options]
  1   UNIX options, which may be grouped and must be preceded by a dash.
  2   BSD options, which may be grouped and must not be used with a dash.
  3   GNU long options, which are preceded by two dashes.

常用选项:

BSD风格的选项:
    a:显示所有与终端相关的进程;
    x;显示所有与终端无关的进程;
    u:显示发起进程的用户的账户名称;
  常用的选项组合之一:aux

ps aux命令显示的结果中各字段的含义:
  USER:进程的所有者
  PID:进程标识符
  %CPU:进程占用的CPU处理时间的百分比;
  %MEM:进程占用的物理内存的百分比;
  VSZ:虚拟内存集(可交换内存集)
  RSS:常驻内存集
  TTY:进程与哪个终端相关;?表示与终端无关;
  STAT:
   R:running,正在运行的进程;
   S:interuptible sleeping,可中断的睡眠状态;
   D:uninteruptible sleeping,不可中断的睡眠状态;Disk Block;
   T:Trace/STOPPED,被跟踪/已停止;
   Z:Zombie,僵死态;
   +:前台进程
   l:包含多线程的进程
   <:高优先级进程
   N:低优先级进程
   s:session leader,有子进程的父进程;
   START:进程开始执行的时候时间戳
   TIME:进程累计的CPU占用时间;
   COMMAND:启动进程的命令行参数;

UNIX风格的选项:
      -e:显示所有进程
      -f:显示完整格式的进程信息
      -F:显示完整格式的进程信息,与-f几乎相同;

常用的选项组合之二:-ef
     PPID:父进程PID
     C:表示进程占用的CPU时间的百分比

常用的选项组合之三:-eF
     SZ:虚拟内存集
     RSS:常驻内存集
     PSR:表示此进程在哪个CPU核心上运行;
     -H:以层级机构显示进程的父子关系;

常用的选项组合之四:-eFH
     o|-o field1,field2,...:以自定义字段的方式显示进程相关信息;
     field:pid, ppid, ni, rtprio, psr, pcpu, stat, comm, user, tty, vsz, rss,...
  常用的选项组合之五:-eo | axo field1,field2,...

... ...

时间: 2024-10-08 10:17:30

Linux进程相关的内容及命令小结(一)的相关文章

统计 Linux 进程相关数量信息

#!/bin/bash # 统计 Linux 进程相关数量信息 running=0 sleeping=0 stoped=0 zombie=0 # 在 proc 目录下所有以数字开始的都是当前计算机正在运行的进程的进程 PID # 每个 PID 编号的目录下记录有该进程相关的信息 for pid in /proc/[1‐9]* do procs=$[procs+1] stat=$(awk '{print $3}' $pid/stat) # 每个 pid 目录下都有一个 stat 文件,该文件的第

Linux下查看文件内容的命令

查看文件内容的命令: cat     由第一行开始显示内容,并将所有内容输出 tac     从最后一行倒序显示内容,并将所有内容输出 more    根据窗口大小,一页一页的现实文件内容 less    和more类似,但其优点可以往前翻页,而且进行可以搜索字符 head    只显示头几行 tail    只显示最后几行 nl      类似于cat -n,显示时输出行号 1.cat 与 tac cat的功能是将文件从第一行开始连续的将内容输出在屏幕上.但是cat并不常用,原因是当文件大,行

Linux进程实时IO监控iotop命令详解

介绍 Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. iotop 是一个用来监视磁盘 I/O 使用状况的 top 类工具.iotop 具有与 top 相似的 UI,其中包括 PID.用户.I/O.进程等相关信息. 实例 直接运行就好 iotop 输出如下 Total DISK READ: 6.01 M/s | Total DISK WRITE: 3.85 K/s TID PRIO USER DISK

Linux调试工具strace和gdb常用命令小结

strace和gdb是Linux环境下的两个常用调试工具,这里是个人在使用过程中对这两个工具常用参数的总结,留作日后查看使用. strace调试工具 strace工具用于跟踪进程执行时的系统调用和所接收的信号,包括参数.返回值.执行时间.在Linux中,用户程序要访问系统设备,必须由用户态切换到内核态,这是通过系统调用发起并完成的. strace常用参数: -c 统计每种系统调用执行的时间.调用次数.出错次数,程序退出时给出报告 -p pid 跟踪指定的进程,可以使用多个-p同时跟踪多个进程 -

Linux中查看文件内容的命令cat、more、less三者的区别

cat命令用于显示整个文件的内容,单独使用时没有翻页的功能. more命令当页面满一页显示时暂停,按空格键可以显示下一页的内容.按Q键停止显示. less命令的用法与more类似,也可以用来显示超过一页的内容.所不同的是less除了按空格键可以显示下一页的内容,还可以利用上下键来翻页. 其实这三个命令除了cat有合并文件的功能,其他的功能基本上是一样的,只是在浏览习惯上或显示方式上有所不同而已.

Linux中查看文件内容的命令(cat,more,less,head,tail)

cat命令 用途:显示出文件的内容cat [选项] 文件名...示例[[email protected] ~]# cat /etc/hosts[[email protected] ~]# cat /etc/sysconfig/network 缺点:在字符界面中,如果内容超过屏幕显示的最大行数,则只会显示最后能显示的行数. more命令 用途:全屏方式分页显示文件内容more [选项] 文件名...交互操作方式按Enter键向下逐行滚动.按空格键向下翻一屏按q键退出 缺点:当翻到行尾时再翻页会自动

linux 查找文件或者内容常用命令

whereis <程序名称> find [路径] <表达式> locate <文件名称> 从文件内容查找匹配指定字符串的行: $ grep "被查找的字符串" 文件名 从文件内容查找与正则表达式匹配的行: $ grep –e "正则表达式" 文件名 查找时不区分大小写: $ grep –i "被查找的字符串" 文件名 查找匹配的行数: $ grep -c "被查找的字符串" 文件名 从文件内

Linux常用命令小结2

Linux 中经常用到的命令小结2,书写格式请参看 http://www.cnblogs.com/ayy2014/p/4176880.html 1. 用户组操作  groupadd - create a new group #对应的文件位于/etc/group中 # 常用参数 -g 指定GID groupadd -g 1002 group1002 groupdel - delete a group # 不能删掉任何一个用户的primary group,需要手动检测,确保没有文件属于需要删除的组

使用 /proc 文件系统来访问 linux操作系统 内核的内容 &amp;&amp; 虚拟文件系统vfs及proc详解

http://blog.163.com/he_junwei/blog/static/19793764620152743325659/ http://www.01yun.com/other/20130422/366044.html 使用 /proc 文件系统来访问 Linux 内核的内容 这个虚拟文件系统在内核空间和用户空间之间打开了一个通信窗口 简介: /proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux? 内核空间和用户空间之间进行通信.在 /proc 文件系统中,