12个进程管理命令介绍

简介:

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

为了管理这些进程,用户应该能够:

  • 查看所有运行中的进程
  • 查看进程消耗资源
  • 定位个别进程并且对其执行指定操作
  • 改变进程的优先级
  • 杀死指定进程
  • 限制进程可用的系统资源等

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

1. ps

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

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

Output of "ps -a" command

Output of "ps -a" command

 
  1. ps -ef |grep - 列出需要进程
  2. ps -aux - 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM

2. pstree

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

pstree

pstree

3. top

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

top

top

4. htop

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

htop output

htop output

5. nice

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

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

 
  1. nice <优先值> <进程名> - 通过给定的优先值启动一个程序

nice command

nice command

changed nice value of 'top'

changed nice value of 'top'

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

6. renice

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

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

renice command

renice command

初始优先值为0的3806号进程优先值已经变成了4.

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

output of renice for a user group

output of renice for a user group

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

7. kill

这个命令用于发送信号来结束进程。如果一个进程没有响应杀死命令,这也许就需要强制杀死,使用-9参数来执行。注意,使用强制杀死的时候一定要小心,因为进程没有时机清理现场,也许写入文件没有完成。如果我们不知道进程PID或者打算用名字杀死进程时候,killall就能派上用场。

 
  1. kill <pid>
  2. kill -9 <pid>
  3. killall -9 - 杀死所有拥有同样名字的进程

如果你使用kill,你需要知道进程ID号。pkill是类似的命令,但使用模式匹配,如进程名,进程拥有者等。

 
  1. pkill <进程名>

kill initiated

kill initiated

kill

kill

8. ulimit

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

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

ulimit -a

ulimit -a

 
  1. -f - 最大文件尺寸大小
  2. -v - 最大虚拟内存大小(KB
  3. -n - 增加最大文件描述符数量
  4. -H : 改变和报告硬限制
  5. -S : 改变和报告软限制

浏览ulimit man页面获取更多选项。

9. w

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

基于这些用户信息,用户在终止不属于他们的进程时要小心。

'w' command

'w' command

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

'who' command

'who' command

whoami 命令输出当前用户ID

'whoami' command

'whoami' command

10. pgrep

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

 
  1. pgrep -u mint sh

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

output of pgrep

output of pgrep

11. fg , bg

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

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

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

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

 
  1. find . -name *iso > /tmp/res.txt & - 启动一个程序
  2. ctrl+z - 挂起当前执行程序
  3. bg - 将程序放到后台运行

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

 
  1. jobs

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

 
  1. fg %进程id

output of fg, bg and jobscommands

output of fg, bg and jobscommands

12. ipcs

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

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

 
  1. ipcs -p -m

下面屏幕截图列出了最近访问了共享内存段的进程的创建者的ID和进程ID。

ipcs command

ipcs command

总结

总之 ,这些命令可以帮助管理员修复问题和改善性能。同样作为一名普通用户也需要解决进程出现的问题。所以,熟悉如此繁多的命令,从能有效管理进程是行之有效。


原文发布时间为:2015-06-02

本文来自云栖社区合作伙伴“Linux中国”

目录
相关文章
|
6月前
|
监控 Java Shell
Shell命令管理进程
  Linux除了是一种多用户操作系统之外,还是一种多任务系统。多任务意味着可以同时运行多个程序。Linux 提供了相关的工具来列出运行中的进程,监视系统的使用情况以及在必要时停止(或杀死)进程。
|
6月前
|
消息中间件 算法 安全
进程管理
一、进程管理 进程管理是操作系统的重要功能之一,它负责管理和控制计算机系统中的各个进程。进程是指正在执行的程序的实例,它包括程序代码、数据、执行状态等信息。 进程管理主要包括以下几个方面: 1. 进程创建:操作系统负责创建新的进程。当用户或应用程序发起创建进程的请求时,操作系统会为新进程分配资源,并初始化进程的执行环境。 2. 进程调度:操作系统负责调度和分配CPU时间片给各个进程。它根据调度算法和优先级策略,决定哪个进程可以获得CPU的执行权,以实现多任务并发执行。 3. 进程同步:操作系统提供了各种机制来实现进程之间的同步和协作。例如,信号量、互斥锁、条件变量等,可以用来解决进程间的互斥访
94 0
|
7月前
|
安全 IDE Java
进程管理:kill命令之-9与-15
kill :发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终止指定进程。若仍无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
149 0
|
10月前
|
Linux
linux进程相关命令
在linux中 每个执行的程序都称为一个进程,每个进程都分配一个id号 每个进程都有可能以两种方式存在的,前台与后台。 显示系统那些进程在执行 ps -a 显示当前终端的所有进程信息 ps -u 以用户的格式显示进程信息 ps -x显示后台进程运行的参数 %men 占用物理内存 vsz 占用虚拟内存 rss 占用物理内存 tty 终端信息 stat 运行状态 s睡眠 r运行时间 n 比普通进程优先级低 r正在运行 d短期等待 z 僵死进程 t 被跟踪或停止 command 进程名 ps -ef 是以全格式显示当前所有的进程 -e 显示所有进程 -f全格式 uid 用户id pid 进程
63 0
|
安全 算法 测试技术
进程管理和死锁避免
进程管理和死锁避免
80 0
进程管理和死锁避免
|
Unix Shell Linux
操作系统之Linux 进程管理中的进程的创建和实现一个简单的 shell(命令行解释器)
操作系统之Linux 进程管理中的进程的创建和实现一个简单的 shell(命令行解释器)
270 0
操作系统之Linux 进程管理中的进程的创建和实现一个简单的 shell(命令行解释器)
|
Linux Windows
【Linux】【操作】Linux操作集锦系列之三——进程管理系列之(三)进程kill相关命令
【Linux】【操作】Linux操作集锦系列之三——进程管理系列之(三)进程kill相关命令
122 0
|
存储 缓存 算法
【7. 进程管理】
进程管理 进程(Process)描述 进程状态(State) 线程(Thread) 进程间通信(Inter-Process Communication) 进程互斥与同步 死锁(Deadlock) 1. 进程描述 进程定义 进程的组成 进程的特点 进程控制结构
75 0
【7. 进程管理】
|
监控 Shell Linux
【Linux】进程控制 —— 进程创建 | 进程退出 | 进程等待 | 进程程序替换 | 实现简易shell
本文将介绍进程控制;最后自己实现简陋的shell,对于bash会有更深的理解。 前置文章:进程虚拟地址空间;环境变量。
304 0
【Linux】进程控制 —— 进程创建 | 进程退出 | 进程等待 | 进程程序替换 | 实现简易shell

热门文章

最新文章