1.进程的组成
一个进程包含内核中的一部分地址空间和一系列数据结构。其中地址空间是内核标记的一部分内存以供进程使用,而数据结构则用来纪录每个进程的具体信息。
最主要的进程信息包括:
- 进程的地址空间图
- 进程当前的状态( sleeping、stopped、runnable 等)
- 进程的执行优先级
- 进程调用的资源信息
- 进程打开的文件和网络端口信息
- 进程的信号掩码(指明哪种信号被屏蔽)
- 进程的属主
PID:进程ID
每一个进程都会从内核获取一个唯一的ID值。绝大多数用来操做京城的命令和系统调用,都需要PID
指定操作的进程对象。
PPID:父进程ID
在unix和linux系统中,一个已经存在的进程必须克隆它自身来创建一个新的进程。当新的进程克隆后,最初的进程便作为父进程存在。
UID&EUID:真实用户ID和有效用户ID
一个进程的 UID 是其创建者的身份标志(也是对其父进程 UID 的复制)。通常只有进程的创建者和超级用户才有操作该进程的权限。
Niceness
一个进程的计划优先级决定了它能获取到的 CPU 时间。内核有一个动态的算法来计算优先级,同时也会关注一个 Niceness 值,来决定程序运行的优先顺序。
二.信号
信号属于进程级别的中断请求。它们可以作为进程间通信的手段,或者由终端发送以杀死,中断,挂起某个进程。
三。kill命令
kill命令常用来终止某个进程,它可以向进程传递信号(默认为TERM)
不带任何数字(信号)选项的kill命令1并不能保证进程被杀死,因为kill命令默认发送term信号,而term是可以被捕获,屏蔽或忽略的。
可以使用kill -9 pid命令强制杀死进程(9代表KILL信号,不可被捕获,屏蔽或者忽略)。
KILL命令需要指定进程的PID号
pgrep 命令可以通过程序名称(或其他属性如 UID)筛选进程号,pkill 命令可以直接发送指定信号给筛选结果。
如 sudo pkill -u ben
该命令将发送 TERM 信号给所有属于用户 ben 的进程。
killall 命令可以通过程序名称杀死指定进程的所有实例。如:
sudo killall apache2
进程管理命令
pstree
通过树形结构显示进程关系
yum install -y psmisc -y 安装命令
ps
查看进程状态--当前运行状态;(这一刻)
PID进程ID
TTY启动该进程的终端是谁 pts
TIME进程累计再CPU上运行的时长
CMD启动该进程命令程序
ps的常用组合:
ps -aux
USER 进程所属用户
PID
%CPU
%MEM
VSZ virtual memory size 虚拟内存大小;进程自己再内存中真是占用的线性地址空间大小
RSS 常驻内空间(不可以进行内存交换 -- swap)
TTY
STAT
top命令
显示进程信息 top
显示完整命令 top -c
以批处理模式显示程序信息 top -b
以累积模式显示程序信息 top -s
设置信息更新时间 top -d 3
显示指定进程信息 top -p 139 //显示进程号为139的进程信息,cpu
,内存占用率
显示更新十次后退出 top -n 10
使用者将不能利用交谈式指令来对行程下命令 top -s