在Linux里聊进程

概念:

进程通俗来说,运行中的程序,

在linux下,知道程序要运行,首先就是将磁盘中相应的可执行文件加载到内存中,那么我们怎么知道他在内存中哪呢?这个时候就需要我们通过一个叫做进程标识符的东西找到它。类似于我们自己的身份证

进程分为临时进程和持久进程

临时进程
执行完命令,自动结束

持久进程
程序运行后,需要手动结束。

程序被加载为进程的示意图:

在这里插入图片描述1、用户执行程序。

2、程序加载到内存中。

2.1、给程序一个临时的pid

2.2、查看执行的权限,如果用户没有执行权限,那么拒绝操作,如果有,开始加载程序执行的相关资料

2.3、确认临时的PID。

如何查看进程:

在Linux系统中,不像windows那样方便,可以通过快捷键调出图形化的任务管理器来管理进程。

静态查询:

重要 ps:

将某个时间点的程序运作情况截取下来

常用组合选项 -aux

a
关联的所有 process,通常与x一起使用,列出完整信息。

x
后台进程

u
有效使用者的相关联的进程

ajxf
可以让ps的结果以树状的格式显示出来。

举例:当我们新开一个通道编辑一个文件的时候,我们通过ps -aux可以查看到

查询特定进程用

ps -aux | grep sshd

查询sshd服务

ps查询结果各项解释:

USER
用户

PID
进程ID

%CPU
cpu占用率

%MEM
内存使用率

VSS
虚拟内存使用量

RSS
物理内存使用量

TTY
tty1-tty6 是本机上面的登入者程序。

pts/0 等等的,则表示为由网络连接进主机的程序。

如果显示?则表示与终端机无关。

STAT
进程的状态

START
进程启动的时间

TIME
累计消耗CPU的时间

COMMAND
表示哪个命令/程序运行的该进程

状态标识:

R
正在运行,或在队列中的进程

S
处于休眠状态

l
多进程

Z
僵尸进程

T
停止或者被追踪

<
高优先级

N
低优先级

s
包含子进程

位于后台的进程组

僵尸进程:

由于该进程已经执行完毕,但是父进程没有终止或其他原因导致该进程并没有真正的结束,所形成的进程称之为僵尸进程。

此进程对服务器的危害在于它会持续的消耗服务器资源,消耗量会越来越大。最终导致其他的进程无资源可用,服务器崩溃。

pstree:

选项:

A
各程序之间的连接以ASCII字符来连接

U
各程序之间的连接以UTF-8的字符来连接

u
列出每个process的所属账号名称

p
同时列出每个程序的进程的ID

举例:

#bash

pstree -up

注:使用哪个账户运行此命令,那么与其相关的进程则不会显示用户名

动态查询:

重要 top:

动态查询系统的进程状态。默认是3秒一更新。

选项:

-d
跟时间,可以修改top默认更新(刷新)的时间

-b :
以批次的方式执行 top ,还有更多的参数可以使用,通常会搭配数据流 重导向来将批次的结果输出成为档案;

-n Number:
与 -b 搭配,意义是需要进行几次 top 的输出结果;

-p :
指定某些个 PID 来进行观察监测而已;

案例:

每秒刷新一次top

bash

top -d 1

每2秒刷新一次top,以批次输出2次。

#bash

top -d 2 -n 2

每秒刷新一次top,以批次输出5次。

bash

top -d 1 -b -n 5 >> top.log # >>表示以追加的方式输出,>表示以覆盖的方式输出

交互式按键:(并不常用)

? :
显示在 top 当中可以输入的按键指令

P :
以CPU的使用资源排序显示

M :
以Memory的使用资源排序显示

N :
以PID来排序

T :
由该Process使用的CPU时间累积 (TIME+) 排序

q :
离开top软件的按键

重要 进程的管理:

单进程的管理:

kill:结束某个进程

语法:kill 信号量 PID

信号量:

-15:
以正常的程序方式终止一个进程!!!

-9 :
立刻强制终止一个进程!!!(!!不能强制结束系统级别的进程)

-2 :
代表由键盘输入 [ctrl] + c 同样的动作;

-1 :
对于sshd这样的守护进程,重新读取一次参数的配置文件 (类似 reload),如果进程为非守护进程,默认为终止进程; !!

多进程的管理:

killall:结束基于某个程序运行进程。

语法:killall 信号量 程序名/命令名

信号量:

-15:
以正常的程序方式终止一个进程!!!

-9 :
立刻强制终止一个进程!!!(!!不能强制结束系统级别的进程)

-2 :
代表由键盘输入 [ctrl] + c 同样的动作;

-1 :
对于sshd这样的守护进程,重新读取一次参数的配置文件 (类似 reload),如果进程为非守护进程,默认为终止进程; !!

案例:

结束所有httpd的进程(如果没有可以先安装一下yum install -y httpd)

bash

killall -9 httpd
在这里插入图片描述
结束所有java的进程

bash

killall -9 java

发布了17 篇原创文章 · 获赞 20 · 访问量 957

猜你喜欢

转载自blog.csdn.net/zhaoyi666/article/details/105211746