centos进程管理 详解

Linux进程管理与监控
1.进程的概念与分类
进程的基本定义: 在自身的虚拟地址空间运行的一个独立的程序,从操作系统的角度看,所有在系统上运行的东西,都可以称为一个进程。

进程的分类:
系统进程 : 可以执行内存资源分配和进程切换管理工作;而且,该进程的运行不受用户的干预,
即使是root用户也不能干预系统进程的运行。
用户进程 :通过执行用户程序、应用程序或内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。
a.交互进程:由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。
b.批处理进程:该进程是一个进程集合,负责按顺序启动其它的进程。
c.守护进程: 守护进程是一直运行的进程,经常在linux系统启动时启动,在系统关闭时关闭。如crond进程。

2、进程的监控与管理
在linux系统中,进程ID用PID表示,是区分不同进程的唯一标识,它们的大小是有限制的,最大ID32768,
用UID和GID分别标识启动这个进程的用户和用户组。所有的进程都是PID为1的init进程(centos7.x版本后是systemed进程)的后代。
内核是系统启动的最后阶段启动init进程,因而,这个进程是linux下所有进程的父进程。

常用的进程管理命令有:
ps、top、lost、pgrep、kill、killall
lsof -p PID: PID是进程号,通过进程号显示程序打开的所有文件及相关进程。
lsof -i :通过监听指定的协议、端口、主机等信息,显示符合条件的进程信息。

lsof常用组合:
lsof -c sshd
lsof -g 4918

#lsof -p pid (查看该pid进程的详细信息)
#lsof -c sshd (通过进程名,显示进程的详细信息)
#lsof -i :21 (查看21端口打开的进程信息)

2、进程的监控与管理
利用pgrep查询进程ID
pgrep是通过程序的名字来查询进程pid的工具,它通过检查程序在系统中活动的进程,输出进程属性匹配命令行上指定条件的进程ID。
查看sshd进程对应的所有ID,可执行如下命令:
pgrep命令:也是查看进程pid信息; #pgrep -f ssh(查看ssh进程的pid信息)

用kill终止一个进程:
kill命令的使用语法为: kill [信号类型] 进程ID
信号类型有很多种,可以通过kill -l 查看所有信号类型。常用的信号类型有SIGKILL,对应的数字为9,
还有SIGTERM和SIGINT,对应的数字分别为15和2.
kill -9 进程PID : 表示强制结束进程。
kill -2 进程PID : 表示结束进程,但并不是强制性的,常用的Ctrl+C组合键发出的就是一个kill -2的信号。
kill -15 进程PID :表示正常结束进程,是kill的缺省选项,也就是kill不加任何信号类型时,默认类型就是15.

用killall终止一个进程:
killall也是关闭进程的一个命令,与kill不同的是,killall后面跟的是进程的名字,而不是进程的PID,因而,killall可以终止一组进程。

kill的使用语法为:
killall [信号类型] 进程名称
killall -9 进程名称 : 表示强制结束进程。
kill -2 进程名称 : 表示结束进程,但并不是强制性的,常用的Ctrl+C组合键发出的就是一个kill -2的信号。
killall -15 进程名称 :表示正常结束进程,是kill的缺省选项,也就是kill不加任何信号类型时,默认类型就是15.

kill -0: 是对服务的一种试探, # kill -0 5599()

猜你喜欢

转载自blog.51cto.com/12772149/2603119