导读

执行中的程序叫做进程。当程序可以执行文件储存在储存中,但是运行的时侯,每位进程会被动态得分配系统资源、内存、安全属性和与之相关的状态。可以有多个进程关联到同一个程序,并同时执行不会相互干扰。操作系统会有效地管理和追踪所有运行着的进程。

为了管理这种进程,用户应当才能:

●查看所有运行中的进程

●查看进程消耗资源

●定位某些进程而且对其执行指定操作

●改变进程的优先级

●杀死指定进程

●限制进程可用的系统资源等

Linux提供了许多命令来让用户来高效掌控上述的操作。接出来,一个一个的来讲解下。

1.ps

‘ps’是Linux中最基础的浏览系统中的进程的命令。能列举系统中运行的进程linux进程相关命令,包括进程号、命令、CPU使用量、内存使用量等。下列选项可以得到更多有用的消息。

ps -a - 列出所有运行中/激活进程

12个Linux进程管理命令介绍

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

ps -aux - 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM等

2.pstree

linux中,每一个进程都是由其父进程创建的。此命令以可视化形式显示进程,通过显示进程的树形图来展示进程间关系。倘若指定了pid了,这么树的根是该pid,不然将会是init(pid:1)。

12个Linux进程管理命令介绍

‘top’是一个愈加有用的命令,可以监视系统中不同的进程所使用的资源。它提供实时的系统状态信息。显示进程的数据包括PID、进程属主、优先级、%CPU、%memory等。可以使用这种显示指示出资源使用量。

4.htop

htop与top很类似,而且htop是交互式的文本模式的进程查看器。它通过文字图形化地显示每一个进程的CPU和显存使用量、swap使用量。使用上下光标键选择进程,F7和F8改变优先级,F9杀害进程。Htop不是系统默认安装的,所以须要额外安装。

5.nice

通过nice命令的帮助,用户可以设置和改变进程的优先级。提高三个进程的优先级,内核会分配更多CPU时间片给这个进程。默认情况下,进程以0的优先级启动。进程优先级可以通过top命令显示的NI(nicevalue)列查看。

进程优先级值的范围从-20到19。值越低,优先级越高。

nice   - 通过给定的优先值启动一个程序

12个Linux进程管理命令介绍

上述命令事例中,可以看见‘top’命令获得了-3的优先值。

6.renice

renice命令类似nice命令。使用这个命令可以改变正在运行的进程优先值。注意,用户只能改变属于她们自己的进程的优先值。

renice -n -p - 改变指定进程的优先值

初始优先值为0的3806号进程优先值早已弄成了4。

renice -u -g - 通过指定用户和组来改变进程优先值

上述事例中,用户为‘mint’的所有进程优先值变为‘-3’。

7.kill

这个命令用于发送讯号来结束进程。假如一个进程没有响应杀害命令,这似乎就须要强制杀害,使用-9参数来执行。注意,使用强制杀害的时侯一定要当心,由于进程没有时机清除现场,其实写入文件没有完成。假如我们不晓得进程PID或则准备用名子杀害进程时侯,killall才能派上用场。

kill 

kill -9 

killall -9 - 杀死所有拥有同样名字的进程

假如你使用kill,你须要晓得进程ID号。pkill是类似的命令,但使用模式匹配,如进程名,进程拥有者等。

pkill 

8.ulimit

该命令用于控制系统资源在shell和进程上的分配量。对于系统管理员是最有用的,可以管理轻度使用和存在性能问题的系统。限制资源大小可以确保重要进程持续运行,其他进程不会占用过多资源。

ulimit -a - 显示当前用户关联的资源限制

12个Linux进程管理命令介绍

-f:最大文件规格大小

-v:最大虚拟显存大小(KB)

-n:降低最大文件描述符数目

-H:改变和报告硬限制

-S:改变和报告软限制

浏览ulimitman页面获取更多选项。

9.w

w提供当前登入的用户及其正在执行的进程的信息。显示信息头包含信息,如当前时间、系统运行时长、登录用户总量、过去的1linux操作系统,5linux命令chm,15分钟内的负载均衡数。

基于这种用户信息,用户在中止不属于她们的进程时要当心。

who是类似命令,提供当前登入用户列表、系统启动时间、运行级别等。

12个Linux进程管理命令介绍

whoami命令输出当前用户ID

10.pgrep

pgrep的意思是”进程号全局正则匹配输出”。该命令扫描当前运行进程,之后根据命令匹配条件列举匹配结果到标准输出。对于通过名子检索进程号是很有用。

pgrep -u mint sh

这个命令将会显示用户为‘mint’和进程名为‘sh’的进程ID。

11.fg,bg

有时,命令须要很长的时间才会执行完成。对于这些情况,我们使用‘bg’命令可以将任务放到后台执行,而用‘fg’可以调到前台来使用。

我们可以通过‘&’在后台启动一个程序:

find . -name *iso > /tmp/res.txt &

一个正在运行的程序也可以通过“CTRL+Z”和“bg”命令组合放在后台运行。

find . -name *iso > /tmp/res.txt & - 启动一个程序

ctrl+z - 挂起当前执行程序

bg - 将程序放到后台运行

我们可以使用‘jobs’命令列举所有后台进程。

jobs

使用‘fg’命令可以将后台程序调到前台执行。

fg %进程id

12个Linux进程管理命令介绍

12.ipcs

ipcs命令报告进程间通讯设施状态。(共享显存,讯号量和消息队列)

用-p参数联合-m、-s或-q使用,可以获得相关的进程间通讯的进程ID。

ipcs -p -m

下边屏幕截图列举了近来访问了共享显存段的进程的创建者的ID和进程ID。

总结

其实,这种命令可以帮助管理员修补问题和改善性能。同样作为一名普通用户也须要解决进程出现的问题。所以,熟悉这么繁杂的命令linux进程相关命令,从能有效管理进程是行之有效。

原文来自:

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复