天天看点

Linux进程管理原理及工具(pstree ps pgrep pkill uptime top htop vmstar lsof)一、进程管理

一、进程管理

(一)程序与进程

程序:指令+参数的集合通过逻辑控制运行起来,完成某项特定任务。(类似Java)静态的,封闭的。

进程:程序运行起来的过程。是操作系统运行的基本单位。有生命周期(产生---->死亡)进程有运行状态(running,sleepping,等待,僵死)

Linux多任务操作系统能够让许多程序同时运行,每一个运行着的程序就是一个进程

1.进程与程序区别:

程序是静态的,进程是动态的有生命周期的,有状态

程序和进程不是一一对应。相同的程序运行到不同的数量集上就是不同的进程/usr/bin/vim(程序) -----vim test1 ,vim test2

程序是封闭的,进程有并发性和交往性。进程之间可以通信,(|);方式:(1)共享内存,(2)消息队列

2.进程与线程

在linux系统上,对于进程或线程都将拥有一套完整的资源集。(内存---->虚拟内存,CPU------>时间片)。

自学:协程;对比一下进程,线程协程

Linux进程管理原理及工具(pstree ps pgrep pkill uptime top htop vmstar lsof)一、进程管理

区别:一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有。

线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执行。

3.子进程与父进程:fork

子进程继承父进程的特性:安全性的身份认证;过去和当前的文件描述符,端口等资源特权;环境变量;程序代码。

子进程的id号永远大于父进程,查看pid号:用pgrep命令 # pgrep httpd

每个进程都可以产生子进程,

父进程 ----sleep---------------------running-------->

| |

fork()-----exec()----------exit() ---->zombie

关系:①父进程终止,子进程也就终止。

②.子进程运行期间,父进程处于(sleeping)睡眠状态;当子进程完成时发出信号请求,在退出时,子进程已经关闭或丢弃其资源环境,剩下的部分称之为(zombie)僵尸。子进程退出父进程唤醒,继续执行自己的代码。加粗样式

(二).进程的生命周期

sleep:

S:可中断睡眠,条件:硬件要求,系统资源访问,信号。比如:键盘输入。

D: 不可中断睡眠, 比如:系统进程(不可中断),如中断可能会引起系统的异常 -->用户进程

K:可退出的睡眠,

running:在CPU上运行的进程或者是准备运行的进程(队列(高速缓存));

user的日常任务,kernel的日常任务

运行:---->进程占用cpu时间片

等待:---->等待某个条件成熟

就绪:---->分配好所有资源,等待cpu时间片

stop:

zombie:

Z: —>exit----task_struct(PID,返回状态码,父进程需要状态)

X: —>exit----将没有数据

(三).linux系统的进程优先级

“进程的优先级” 0-139 — 140数

实时优先级:0<------------------------------99

: 100-139

nice : -20-19

RP: 0-39 RT

“nice值” -20-19 作用是调整进程优先级,(不能调kernel,调整user)

“top–PR” 0-39

top —>“r” —>“PID” —“nice值”

renice -n 10 -u apache

(四).进程管理工具(pstree ps pgrep pkill uptime top htop vmstar lsof)

1、pstree 查看进程树之间的关系

[[email protected] ~]# yum provides pstree //查看安装包

[[email protected] ~]# yum install psmisc //下载ps安装包

-A:用途,当终端不支持UTF-8(中文),显示乱码,此时用该参数。(线)

-U:UTF-8默认线的样式(线)

-p:列出pid 子进程的号大于夫进程号

-u:列出账号名称

Linux进程管理原理及工具(pstree ps pgrep pkill uptime top htop vmstar lsof)一、进程管理

2、ps 查看瞬间进程状态

(最常用监控后台进程工作的情况)能列出系统中运行的进程,包括进程号、命令、CPU使用量、内存使用量等

注意:ps显示瞬间进程状态,并不动态连续。对进程实时监控应该用top命令

-a :显示终端机下的进程,包括其他用户/列出所有运行中/激活进程

-u :以用户为 主的进程状态/uid or username 选择有效的用户id或者是用户名

-x : 除了TTY控制的其他进程/显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)

-l :列出较详细的信息

-f: 打印完整输出

-aux:当前以用户为主的所有进程状态

Linux进程管理原理及工具(pstree ps pgrep pkill uptime top htop vmstar lsof)一、进程管理

USER: 运行进程的用户

PID: 进程ID

%CPU: CPU占用率

%MEM: 内存占用率

VSZ: 占用虚拟内存

RSS:占用实际内存 驻留内存

TTY: 进程运行的终端

STAT: 进程状态 man ps (/STATE) R 运行 S 可中断睡眠 Sleep

D 不可中断睡眠

T 停止的进程

Z 僵尸进程

X 死掉的进程

Ss s进程的领导者,父进程

S< <优先级较高的进程

SN N优先级较低的进程

R+ +表示是前台的进程组

Sl 以线程的方式运行

START: 进程的启动时间

TIME: 进程占用CPU的总时间

COMMAND: 进程文件,进程名

ps -ef |grep - 列出需要进程

Linux进程管理原理及工具(pstree ps pgrep pkill uptime top htop vmstar lsof)一、进程管理
Linux进程管理原理及工具(pstree ps pgrep pkill uptime top htop vmstar lsof)一、进程管理

F :代表这个程序的旗帜(flag)

S:代表使用者 superuser

UID :代表执行者身份

PID :进程id号

PPID:父进程号

C :cpu使用的资源百分比

PRI :进程的执行优先级 (priorite)值越小越早被执行

NI :进程的nice值表示进程可被执行的优先级的修正数值

ADDR:内核函数

SZ :使用掉的内存大小 WCHAN:目前这个程序是否正在运行 运行-

TTY :登入者的终端位置

TIME :使用掉的cpu时间

CMD:所下达的指令名称

3、pgrep 查看pid与进程名的对应

o:当匹配多个进程时,显示进程号最小的那个

n:当匹配多个进程时,显示进程号最大的那个

l:同时显示进程名和pid

kill

pgrep -o httpd

Linux进程管理原理及工具(pstree ps pgrep pkill uptime top htop vmstar lsof)一、进程管理

4、killall ,kill ,pkill 杀死指定名字的进程

-----------通过发送信号的方式,对进程行为做控制

killall httpd 直接加进程名

kill PID 加父进程号

pkill httpd 直接加进程名

kill命令

0 ---->嗅探进程是否存在,不对其做任何操作

1 ---->断开终端

2 ---->中断,ctrl + c

3 ---->退出,ctrl

15 —>默认,终止

9 —>强制终止,

18 —>继续

19 —>暂停

eg:kill -18 进程

5、top动态的打印系统信息:

[[email protected] ~]# top

Linux进程管理原理及工具(pstree ps pgrep pkill uptime top htop vmstar lsof)一、进程管理

PID:进程ID

user:运行进程的用户

PR:进程优先级 NI:nice值,负数表示优先级最高

VIRT:进程使用虚拟内存总量 REX:进程占用的物理内存总量

SHR:进程占用的共享内存大小 S:进程状态: R:runing S:sleeping休眠 T:stop Z:zombie D:不可中断

%CPU:从上次刷新到目前使用的cpu时间占比

%MEM:进程使用的物理内存百分比

TIME+:进程使用cpu的时间 单位1%秒

COMMAND:进程名称

6、htop top升级版

-aux注意:htop是第三方源 安装时先要安装epel*源,在安装htop .

根据此链接安装epel 源(选一种安装即可)

https://developer.aliyun.com/mirror/epelspm=a2c6h.13651102.0.0.3e221b11lbqnQo

安装

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum install htop

Linux进程管理原理及工具(pstree ps pgrep pkill uptime top htop vmstar lsof)一、进程管理

上左区域:men:物理内存

上右区域:tasks:任务数量 uptime:运行时间

进程区域:同top显示的一样

7、vmstat:

8、sar

[[email protected] ~]# yum install sysstat -y
Linux进程管理原理及工具(pstree ps pgrep pkill uptime top htop vmstar lsof)一、进程管理

9、tsar --sar:

淘宝开源,以周期计划任务的方式执行

10、lsof

管理文件

(五)伪文件系统

/proc:进程信息,内存信息,磁盘信息

/sys:设备组织

(六)前后台作业

1、什么是作业:用户交给系统的某项任务

“前台作业同一时刻只能运行一个,后台作业同时可以运行多个”

前–》后:“命令 &”:运行

“Ctrl +z” :停止 —》bg &序列 ----》运行

后–》前:fg %序列

对于做支持信号:

0 ---->嗅探进程是否存在,不对其做任何操作 echo $? —>0

1 ---->断开终端

2 ---->中断,ctrl + c

3 ---->退出,ctrl +

15 —>默认,终止

9 —>强制终止,

18 —>继续

19 —>暂停

kill -19 %序列

作业可以放到后台运行,任然可以将输出打印在终端上。

作业是正对于终端而言,在哪个终端上启动的作业,在哪个终端上jobs。

2、 屏蔽中断信号

对于终端上的作业,有内容输出时,当终端断开后,该作业进程将会接收到中断信号;导致进程被杀死。

nohup屏蔽中断信号。

nohup ping www.baidu.com > /dev/null &

nohup ping www.baidu.com >> /tmp/nohup_ping.log &

继续阅读