linux 创建进程组 gpid,Linux系统中进程的查看及控制

1.什么是进程

程序放置在储存媒体中如硬盘,光盘,软盘,磁带等,为实体文件的形态存在

进程:程序被触发后执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(pid),进程就是一个正在运行的程序

2.进程的状态

R 正在运行

S 正在睡眠状态,但可以被唤醒

D 不可被唤醒的睡眠状态,通常进程可能在等待I/O的情况

T 停止状态,可能是在工作控制(背景暂停)或除错状态

Z 僵尸状态,程序已经终止但无法被移至内存外

f029fe1834cd176da3ab2ba9d5ed3f9e.png

3.查看进程

(1)图形方式查看

gnome-system-monitor

42d600d0079718014ee041579e6725bb.png

打开后如下:

17eb76293c9121a59bd8881ba4db8614.png

(2)进程查看命令

ps 查看当前环境的进程

-A 表示所有进程

2202d81958733782464b5b034b7b0528.png

x表示有字符设备的所有进程,即有输出界面的进程

22f58ac7691c912e52f5417be2b5fd4f.png

-a 当前环境中的进程,忽略环境本身

44e683618fec443df5fc4c4b8d1c7a55.png

a 跟当前环境(shell)相关的所有的进程,包括背景,最全的

fdb8f612100bc90efb11e75fbac16d03.png

-u 显示进程的归属,进程所有人

dfd538693b388f2a88c9be8b98bdf788.png

f 查看进程的从属关系,有窗口的进程结束父进程子进程会自动结束

d98587a060566e71bad6b1d7fa261808.png

###pstree查看系统的进程树

e 显示进程消耗的资源

056778ac48877edc5b677e592057d5f2.png

l 较长,较详细的将该pid的信息列出

ac301d4f5729a881735f100930552610.png

<1>常用组合

ps aux 显示系统中所有进程并显示进程用户

a8aa783b40f472f000d3b36e5bcb2163.png

ps ef 显示进程详细信息并显示进程父子关系

c67b01512b7f55e4c58bde4c8a65b5ec.png

ps ax 显示当前系统中的所有进程

1e334a6a627302dad32340d3190cf447.png

pstree 显示当前系统的进程树

33bfb2624018d9ce8205b405d71848cf.png

<2>显示进程指定信息

ps -o comm进程名称

67b03b429beb82c478d8e28ef1faac9e.png

user进程所有人

32fb54d85560ae59546a3192f6432623.png

group进程所有组

51ea36521371ccc2471181f8a15fdcb4.png

%cpu进程cpu使用率

a47255bc5e79ee356ac59fc0ace3d9bb.png

%mem进程内存使用率

f8b74e4f94aa0b3b5e8ba4e4005d0e40.png

pid 进程id

b037d1e06e0f8368d89bbca410f9e253.png

nice 进程优先级(0 表示normal 普通,nice 优先级越负越高)

bfbb581b84d933fab03d90197298882d.png

注:以上参数可以混合使用,使用多个参数时用,隔开

c2bfa6c7cf46f7ae6a92c83a7580d4ea.png

4.进程排序倒序

+正序,可以不加+,默认是正序

ps ax --sort=-%cpu cpu使用量倒序

0ced853b9b39c4f063181edff132749f.png

(+)%cpu cpu使用量正序

32178373f2330719525d1ea8939c6516.png

-%mem 内存使用量倒序

55a44a6d030392ef36ccbf971e46036a.png

( +)%mem 内存使用量正序

099378082702cc3acd12977a55043036.png

例:查看系统内存占用量前五的进程的pid

cd189af3632268089fd6386027a3a82c.png

5.nice 优先级

优先级的范围是-20~19

优先级越负越高

优先级的级别有以下几种:

74b9134a1f021b67ef4830d594623906.png

##0 表示normal 普通

<1>gedit & 表示后台运行这个进程,否则会占用命令行

例: nice -n 5 gedit & 启动时设置进程的优先级为5,再查看进程

9dbceb1473fe8ae26b8b144e9d0859ad.png

<2>改变已经启动的进程的优先级

renice -n 优先级数字 pid

例:先后台打开一个进程,重新设定优先级,设定后系统会提示这个进程的原来的优先级和现在的优先级

6f328b38895e35c55ed5b03dcaa56283.png

6.ps ax -o comm,pid,stat 查看进程的状态信息

45d0537cc9c6f2598c95a7192a05cf51.png

S 进程状态 (后面有以下参数)

l 进程状态内存中有所定空间

N 优先级低

< 优先级高

‘+’ 前台运行

s 顶级进程

R+ 表示正在运行

锁定空间 还没保存时不被回收的内存空间

在休眠状态下内存是共享的

247a961047110ac45ebaa8cf571cf89b.png

7.环境中进程的前后台调用

& 让进程开启的时候被打入后台

例:创建一个gedit进程并把它打入后台,此时命令行是可以用的

933eb824a0873b598bc79a14a3536e45.png

crtl+z 将正在运行(正在占用终端)的进程打入后台,操作后该进程暂停工作

bg 把后台暂停的进程运行起来 ##bg 调用后进程的默认符号会改变

jobs 查看被打入后台的进程 ##- 表示次默认 +表示默认## +优先级高于-,

没有符号表示没有优先级

fg 把后台进程调回前台,直接再次运行

例:<1>创建两个进程,并用jobs查看,后创建的进程默认级别较高

2ccf25666a28d20fa77c7f4766c5606c.png

<2>bg调用进程,没有指定的情况下默认调用前面是+的进程,这时默认级别不会发生改变

62b25a1a08eb378d7c492c5d8e7faced.png

<3>bg 1 调用进程[1] ,这个进程的默认级别会发生改变,再次jobs查看发现两个进程的默认级别发生改变

d0d6fa075678529aa0d7a562e136b9cd.png

<4>再创建一个进程打入后台,jobs查看新创建的进程默认级别最高,原来级别低的进程现在没有了级别(之前的进程默认级别自动减一级)

8e4443a984c59923f24494373db65056.png

<5>bg调用有默认级别的两个进程时没有级别的进程不会受影响,直到bg调用没有级别的进程时三个进程的默认级别才会都发生改变

d8c68dc73bcee0af5b3f98621330d98e.png

<6>bg 2调用之前没有默认级别的进程,他的级别由没有变成了+,jobs查看后其他两个进程的级别在原基础上减一级

9f1e7e87752cdf3141add6c2d7533fec.png

<7>fg 会调用默认级别最高的进程直接运行,他后面也可以加数字指定其他后台运行的进程

c974ff9570b17bfb561ae88e5d9db94b.png

5.进程信号

信号是一个标识

kill -信号 pid

1 进程重新加载配置##在进程不被关闭的情况下更改配置,热更新

kill -2 pid 删除进程在内存中的数据(如 字符设备,锁定空间)

例:先后台运行一个进程gedit,执行ps ax |grep gedit 命令得到gedit进程的信息

4df7c1f7f95d3ccbcb5633b7faeb07aa.png

打开另一个shell,执行kill -2 3672 删除该进程的锁定空间,并再次执行ps ax |grep gedit 命令查看他的信息

a8c9cc9cc4c25f375dfd3bdf6e969510.png

3 = crtl+\ 删除鼠标在内存中的数据(删除之后当前shell中的光标会消失,直到再次移动鼠标又会出现)

9 强行结束单个进程 (不能被阻塞)

15 正常结束进程 (可以被阻塞)

例:ps查看当前环境下的进程,kill -15 pid 结束当前shell,执行后该命令被阻塞

73f8d9cc40ba2487f0316550a6748705.png

在另一个shell中执行kill -9 pid 执行后shell被关闭

37db0ed18164a3204bb761e45cae4419.png

执行后结果如下:

82e9f440b332e1782484454aa10f693f.png

18 运行暂停的进程

19 不能被阻塞

20 可以被阻塞(第三方软件不会被阻塞)

例:

<1>注:该实验的gedit必须是在图形界面中打开的

914593fb28ee64a6da260c2cae72e5b0.png

<2>查看gedit进程的pid

d792f454791b3ce66979a23d2a5b72df.png

<3>在gedit中输入内容

6138619078a8c7228a0365e6092573fd.png

<4>执行 kill -20 4075 命令,执行后点击gedit,还可以继续编辑

9298561f318a91ef8d063297696387a4.png

9719b289bfc05a973a4a3107b989aa96.png

<5>执行kill -19 pid命令,再次点击是不可以编辑的

116bcecb1d0979f09a101e89b2b9e808.png

acde780ff5741f178dec51f5f6adf6af.png

<6>执行kill -18 pid 命令继续运行暂停的进程,刚刚暂停时的操作会显示到文件中(lala是刚刚暂停后输入的内容)

aa2b367e8a1e493ebea50f78af4ad34d.png

killall -信号 进程名 可以管理所有名为##的进程,方便管理

kill -信号 进程id 管理准确

pkill -u student -信号 对属于student用户的进程作相应的操作

pkill 按照一定的条件去操作

例:切换到student用户下,创建一个vim进程,在另一个shell中查看跟student有关的进程

dea461fc524856bb511ad903c0632ef7.png

执行pkill -u username -信号命令,如图执行后student创建的所有进程被结束,再次查看没有跟student有关的进程

fdf5e22526f863991804e191fca94803.png

6.进程的动态监控

top

1 显示cpu每个核的负载

s 调整刷新频率

c cpu负载排序

m 内存使用量排序

h 查看帮助

u 查看指定用户进程

k 对指定进程发起信号

q 退出

例:执行top命令,出现以下界面

d94cde0c9f0fb7a2481ae4064c1eab12.png

在当前界面按s,改变刷新频率

f394d8ac06eb5637655d617651e081b6.png

按1,显示CPU每个核的负载

dda48f7df85ca2bc1e5a7fac55ce69a6.png

28ad8da0ea1285ad3e76edaf8ce4db4d.png

按h,查看帮助

3963815679f2ec0d0f424c4ad2880426.png

按u 查看指定用户的进程

<1>在另一个shell中切换到student用户创建一个进程,在top下按u,输入student

89e2f449ad162e8571abae25642018d2.png

9265b5783caf6eb6f7fd5203a6469bbe.png

<2>执行后如下

30e53abc19fd9c8c1763b93f5733d6a6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值