学习啦>学习电脑>操作系统>操作系统基础知识>

Linux操作系统的进程管理详解

佳洲分享

  Linux操作系统中进程的管理是很重要的一部分,下面由学习啦小编为大家整理了Linux操作系统的进程管理详解的相关知识,希望对大家有帮助!

  Linux操作系统的进程管理详解

  对于Linux的进程的管理,是通过进程管理工具实现的,比如ps、kill、pgrep等工具;

  Linux操作系统的进程管理/1、 ps 监视进程工具;

  ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用top工具;

  1.ps 的参数说明;

  ps 提供了很多的选项参数,常用的有以下几个;

  l 长格式输出;

  u 按用户名和启动时间的顺序来显示进程;

  j 用任务格式来显示进程;

  f 用树形格式来显示进程;

  a 显示所有用户的所有进程(包括其它用户);

  x 显示无控制终端的进程;

  r 显示运行中的进程;

  ww 避免详细参数被截断;

  我们常用的选项是组合是aux 或lax,还有参数f的应用;

  ps aux 或lax输出的解释;

  USER 进程的属主;

  PID 进程的ID;

  PPID 父进程;

  %CPU 进程占用的CPU百分比;

  %MEM 占用内存的百分比;

  NI 进程的NICE值,数值大,表示较少占用CPU时间;

  VSZ 进程虚拟大小;

  RSS 驻留中页的数量;

  WCHAN

  TTY 终端ID

  STAT 进程状态

  D Uninterruptible sleep (usually IO)

  R 正在运行可中在队列中可过行的;

  S 处于休眠状态;

  T 停止或被追踪;

  W 进入内存交换(从内核2.6开始无效);

  X 死掉的进程(从来没见过);

  Z 僵尸进程;

  < 优先级高的进程

  N 优先级较低的进程

  L 有些页被锁进内存;

  s 进程的领导者(在它之下有子进程);

  l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

  + 位于后台的进程组;

  WCHAN 正在等待的进程资源;

  START 启动进程的时间;

  TIME 进程消耗CPU的时间;

  COMMAND 命令的名称和参数;

  2. ps 应用举例;

  实例一:ps aux 最常用

  [root@localhost ~]# ps -aux |more

  可以用 | 管道和 more 连接起来分页查看;

  [root@localhost ~]# ps -aux > ps001.txt

  [root@localhost ~]# more ps001.txt

  这里是把所有进程显示出来,并输出到ps001.txt文件,然后再通过more 来分页查看;

  实例二:和grep 结合,提取指定程序的进程;

  [root@localhost ~]# ps aux |grep httpd

  root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd

  apache 4189 0.0 0.6 24368 4940 ? S 11:55 0:00 /usr/sbin/httpd

  apache 4190 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd

  apache 4191 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd

  apache 4192 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd

  apache 4193 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd

  apache 4194 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd

  apache 4195 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd

  apache 4196 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd

  root 4480 0.0 0.0 5160 708 pts/3 R+ 12:20 0:00 grep httpd

  实例二:父进和子进程的关系友好判断的例子

  [root@localhost ~]# ps auxf |grep httpd

  root 4484 0.0 0.0 5160 704 pts/3 S+ 12:21 0:00 _ grep httpd

  root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd

  apache 4189 0.0 0.6 24368 4940 ? S 11:55 0:00 _ /usr/sbin/httpd

  apache 4190 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd

  apache 4191 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd

  apache 4192 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd

  apache 4193 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd

  apache 4194 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd

  apache 4195 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd

  apache 4196 0.0 0.6 24368 4932 ? S 11:55 0:00 _ /usr/sbin/httpd

  这里用到了f参数;父与子关系一目了然;

  Linux操作系统的进程管理:2、pgrep查询进程工具

  pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。在服务器的配置和管理中,这个工具常被应用,简单明了;

  用法:

  #pgrep 参数选项 程序名

  常用参数

  -l 列出程序名和进程ID;

  -o 进程起始的ID;

  -n 进程终止的ID;

  举例:

  [root@localhost ~]# pgrep -lo httpd

  4557 httpd

  [root@localhost ~]# pgrep -ln httpd

  4566 httpd

  [root@localhost ~]# pgrep -l httpd

  4557 httpd

  4560 httpd

  4561 httpd

  4562 httpd

  4563 httpd

  4564 httpd

  4565 httpd

  4566 httpd

  [root@localhost ~]# pgrep httpd

  4557

  4560

  4561

  4562

  4563

  4564

  4565

  4566

3637754