1.进程介绍

进程的分类:

进程一般分为交互进程、批处理进程和守护进程三类。

守护进程总是活跃的,一般是后台运行,守护进程一般是由系统在开机时通过脚本自动激活启动或由超级管理用户root来启动。比如在Redhat中,我们可以定义httpd服务器的启动脚本的运行级别,此文件位于/etc/init.d目录下,文件名是httpd,/etc/init.d/httpd就是httpd服务器的守护程序,当把它的运行级别设置为3和5时,当系统启动时,它会跟着启动。

由于守护进程是一直运行的,所以它所处于的状态是等待请求处理任务。

进程的属性:

进程ID(PID):是唯一的数值,用来区分进程;

父进程和父进程的ID(PPID);

启动进程的用户ID(UID)和所属的组(GID);

进程状态:状态分为运行R、休眠S、僵尸Z;

进程执行的优先级;

进程所连接的终端名;

进程资源占用:比如占用资源大小(内存、CPU占用量);

父进程和子进程:

它们的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但子进程终止,父进程并不一定终止。

2.进程管理

ps监视进程工具

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

ps的参数说明

l 长格式输出

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

j 用任务格式来显示进程

f 用树形格式来显示进程

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

x 显示无控制终端的进程

r 显示运行中的进程

ww 避免详细参数被截断

常用的选项组合是aux和lax,还有参数f

ps aux或lax输出的解释:

USER 进程的属主

PID 进程的ID

PPID 父进程

%CPU 进程占用的CPU百分比

%MEN 占用内存的百分比

PRI 代表这个程序(可被执行的优先级)

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

VSZ 进程虚拟大小

RSS 驻留中页的数量

TTY 终端ID

STAT 进程状态

D 不间断的睡眠(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 命令的名称和参数

ps的应用

  使用管道和more结合分页查看

  ps -aux|more

  输出进程信息到文件并查看

  ps -aux >ps001.txt

  more ps001.txt

  结合grep提取指定程序的进程

  ps aux|grep httpd

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

ps auxf|grep httpd

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

用法:pgrep 参数选项 程序名

参数:-l 列出程序名和进程id

-o 进程的起始id

-n 进程终止的id

终止进程的工具 kill killall pkill

kill

语法:kill [信号代码] 进程id

(信号代码可以省略,常用的是-9,表示强制终止)

对于僵尸进程,可以使用kill -9 加强信号强制退出

killall

语法:通过程序的名字,杀死所有的进程

top 连续的监视系统任务

语法:top 参数

参数:

-b 以批量模式运行,但不能接受命令行输入

-c 显示命令行,而不仅仅是命令名

-d N 显示两次刷新时间的间隔,如:-d 5,表示两次刷新时间为5秒

-i 禁止显示空闲进程或僵尸进程

-n NUM  显示更新次数,然后退出。

-p PID 仅监视指定进程的id

-q 不经任何延时就刷新

-s 安全模式运行,禁用一些交互指令

-S 累积模式,输出每个进程的总的CPU时间,包括已死的子进程

交互模式命令键位

space 立即更新

c 切换到命令名显示,

f,F 增加显示字段,或删除显示字段

h,? 显示有关安全模式及累积模式的帮助信息

k 提示输入要杀死的进程的id,目的是杀死该进程(默认信号为15)

i 禁止空闲进程和僵尸进程

l 切换到显法负载平均值和正常运行的时间等信息

m 切换到内存信息,并以内存占用大小排序

n 提示显示的进程数,如3就显示3个进程

o,0 改变显示字段的顺序

r 把renice 应用到一个进程,提示输入PID和renice的值

s 改变两次刷新时间间隔,以秒为单位

t 切换到显示进程和CPU状态的信息

A 按进程生命大小进行排序,最新进程显示在最前

M 按内存占用大小排序,由大到小

N 以进程ID大小排序,由大到小

P 按CPU占用情况排序,由大到小

S 切换到累积时间模式

T 按时间/累积时间对任务排序

W 把当前的配置写到/.toprc中

【来自 乐智的菜园子:www.cnblogs.com/AIThink 亲们,码字不容易,转载请注明出处。】

Linux命令之进程的管理的更多相关文章

  1. Linux命令——用户和用户组管理

    Linux命令--用户和用户组管理 命令groupadd 作用:新增组 格式:groupadd [-g GID] groupname 参数:-g,指定GID,一般从500开始 说明:一般不必加-g参数 ...

  2. Linux命令——文件和目录管理

    Linux命令--文件和目录管理 基本命令 命令ls 作用:显示目录下的文件和文件夹 说明:默认显示当前目录,可跟路径参数 参数:-a,显示隐藏目录 参数:-l,显示文件权限 参数:-d,显示文件最后 ...

  3. Linux命令-终止进程命令:kill

    kill -l 查看进程信号 常用信号 例如: 例子参见:Linux命令-查看进程命令:pstree

  4. linux命令之进程管理命令

    1.ps:查看进程 该命令用于列出命令执行时刻的进程快照,如果想要动态的显示进程信息,可以使用top命令. 参数 说明 a(常用) 显示与终端相关的所有进程,包含每个进程的完整路径 x(常用) 显示与 ...

  5. 笔记常用Linux命令(二) 进程和端口

    查看系统进程 ps:用于报告当前系统的进程状态 a:显示所有终端机下执行的程序 ps -ef/ps aux: 这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同. 如果想要查看特定的进程 ...

  6. linux 命令及进程控制

    main.c  main.o/main.obj  main/main.exe          编译                连接 程序运行;      两步: gcc/g++  -c  mai ...

  7. Linux命令-用户及权限管理

    一.权限管理linux系统中对文件权限的描述机制: u g od r w x r w x r - x (r读,w写,x执行)文件 所有者 所属组 其他人可以表示为二进制: 111 111 101也可以 ...

  8. Linux命令(二十七) 用户组管理命令

    Linux提供了一系列的命令管理用户组.用户组就是具有相同特征的用户集合.每个用户都有一个用户组,系统能对一个用户组中所有用户进行集中管理,通过把相同属性的用户定义到同一用户组,并赋予该用户自一定的操 ...

  9. Linux命令详解-用户管理

    1. 用户管理 1.Linux用户管理 linux有三类用户: (1.)超级用户 : root用户具有操作系统的一切权限 uid=0 (2.)普通用户: 具有操作系统有限的权限  uid=500-60 ...

随机推荐

  1. Android开发-解决 AIDL 中找不到couldn't find import for class错误

    最近在使用AIDL做IPC的时候,在处理复杂的数据类型的时候,编译器总是报couldn't find import for class错误,所以在这里总结下AIDL使用的时候的一些注意事项,希望对你能 ...

  2. tomcat启动报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable

    linux 下 启动tomcat 报: Neither the JAVA_HOME nor the JRE_HOME environment variable is definedAt least o ...

  3. C#的SerialPort串口程序设计总结

    简介:微软的VS提供了SerialPort控件,也就是串行端口资源. 当然也可以添加引用 using System.IO.Ports; 通过实例化SerialPort对象就可以使用其属性和方法了. S ...

  4. underscorejs-each学习

    2.1 each 2.1.1 语法: _.each(list, iteratee, [context]) 2.1.2 说明: 依次对集合的所有元素进行某种操作,原样返回list.接收3个参数,list ...

  5. (转)总结PLSQL的快捷键以及使用技巧

    最近在开发过程中,遇到一些麻烦,就是开发效率问题,有时候其他同事使用PLSQL 编程效率明显高于自己,观察了好久,才发现他使用PLSQL 已经很长时间了而且,他自己也在其中添加了好多快捷方式,     ...

  6. __file__ __name__ __doc__ argv详解

    __file__:表示输出当前py文件的路径 __name__: 表示输出当前函数名称,是main()函数(入口函数),或者是其他函数 __doc__: 模块的对象,输出模块的版权信息,如:作者 ch ...

  7. Spark Executor Driver资源调度小结【转】

    一.引子 在Worker Actor中,每次LaunchExecutor会创建一个CoarseGrainedExecutorBackend进程,Executor和CoarseGrainedExecut ...

  8. SCALA中的抽象类代码样例

    package com.hengheng.scala class AbstractClass { } abstract class People { def speak val name : Stri ...

  9. UMHexagonS搜索过程

    通过相邻块的预测得到mvp后,会以mvp为基础搜索最佳的匹配块,UMHexagonS就是h.264中用的一种搜索算法. UMHexagonS是一种整像素搜索算法,也就是搜索过程中,参考图像一直都是原来 ...

  10. Disabling Clang Compiler warnings

    开发中,经常需要禁止编译器提示某些warnings,下面是典型场景和 1,使用CocoaPods时,引用的其他人开发的Pods中包含warnings. 2,直接引用其他人写的源代码时,包括通过直接导入 ...