linux下监控进程需掌握的四个命令

 

在LInux系统下,最困难的工作之一就是跟踪正在系统中运行的程序,尤其是现在,图形桌面使用很多的程序,只是为了生成一个桌面环境,系统中运行了太多的进程,幸运的是,

有一些命令行工具可使这些任务轻松些,下面介绍四个基本工具:

一、进程的查看:

1.特定时间进程监控:ps

默认情况下,ps命令不会显示太多的信息,只显示属于当前用户并且正在当前终端运行的进程,如下图:

Linux系统中使用的GNU ps支持Unix类型参数、BSD类型参数、GNU长参数三种不同的命令行参数,下面只介绍Unix类型参数和示例:

上面列出了许多参数,但请记住,这只是其中的一部分!使用ps命令的关键不是记住所有可用的参数,而是仅记住最有用的,大多数的Linux系统管理员都有一套自己的一组常用参数,

用于提取相关信息。例如,需查看系统上运行的一切进程的详细信息,可以这样:

为节省空间,上图删去了很多行。每个信息列标题的含义如下:

如果需要更详细的信息,可以用-l命令,简要结果如下:

需要注意的是,显示结果的额外列的含义:

另外,比较方便的一个参数是-H,它会让结果分层显示,效果类似下图:

总结:ps命令,用于特定时间查看进程,比较常用的参数有-e、-f、-l、-H等,它的缺点是不能实时监控系统进程,所以,有了top的用武之地……

2.实时进程监控:top

选择top的原因,主要是更准确掌握在内存中换进换出的进程趋势,其中,输出的第一部分显示一些系统信息,如当前时间、进程信息、Cpu信息等等,如下图所示,

其中,黄色底纹标题的具体含义如下:

top的具体交互式命令,如下图:

可见,通过top命令,可是第一时间查到异常进程,接下来要做的,就是阻止异常进程,这要依靠以下停止进程的命令了……

二、停止进程:

在Linux中,各进程使用信号互相通信,进程信号时进程可识别的预定义信息,这些由开发人员规划。大多数精心编写的程序都能够接收标准Unix进程信号,

并对此作出响应,这些信号如下表所示:

Linux提供了以下两个命令用于发送进程信号给运行中的进程。详解如下:

1.kill命令

kill命令允许通过进程ID(PID)将信号发送给相关的进程。使用此命令时要注意用户权限,必须是该进程的所有者或者已作为跟用户登陆。

另外,如果某个进程失控,需要借助-s参数,来外加信号终止它,例如,可以使用KILL强制终止进程。

2.killall命令

killall命令非常强大,它可以根据进程的名称而不是难以记住的PID来停止进程。同时它还允许使用通配符,对于处理出错的系统极为有用。

但需要注意的是,作为根目录登陆是,killall命令要格外小心使用通配符,这样很容易意外停止重要的系统进程,导致文件系统受损!

 
 

linux下监控进程需掌握的四个命令的更多相关文章

  1. linux 下监控进程流量情况命令 NetHogs

    摘自: http://www.cnblogs.com/kerrycode/p/4748970.html NetHogs介绍 NetHogs是一款开源.免费的,终端下的网络流量监控工具,它可监控Linu ...

  2. linux下查看进程id时用到的命令

    一.查看端口占用的进程 . lsof -i:端口号, 查看某一端口的占用情况 [root@localhost bin]# lsof -i: COMMAND PID USER FD TYPE DEVIC ...

  3. linux 下的进程管理工具 supervisor

    在linux下监控进程: 1)yum install python-setuptools   linux下的python安装工具 2)easy_install supervisor     安装sup ...

  4. Linux 下监控用户最大进程数参数(nproc)是否到达上限

    Linux 下监控用户最大进程数参数(nproc)是否到达上限的步骤: 1.查看各系统用户的进程(LWP)数: 注意:默认情况下采用 ps 命令并不能显示出所有的进程.因为 Linux 环境下执行多线 ...

  5. linux下监控jvm 使用的方法

    之前一直用jconsole监控jvm,图形界面简单易用,最近因为需要在纯linux下进行操作,所以总结了一下 linux下监控jvm的例子,这次主要用到了jstat工具, 各个参数意义: jstat ...

  6. Linux下的进程与线程(二)—— 信号

    Linux进程之间的通信: 本文主要讨论信号问题. 在Linux下的进程与线程(一)中提到,调度器可以用中断的方式调度进程. 然而,进程是怎么知道自己需要被调度了呢?是内核通过向进程发送信号,进程才得 ...

  7. Linux下php-fpm进程过多导致内存耗尽问题

    这篇文章主要介绍了解决Linux下php-fpm进程过多导致内存耗尽问题,需要的朋友可以参考下   最近,发现个人博客的Linux服务器,数据库服务经常挂掉,导致需要重启,才能正常访问,极其恶心,于是 ...

  8. Linux下的进程控制块(PCB)

    本文转载自Linux下的进程控制块(PCB) 导语 进程在操作系统中都有一个户口,用于表示这个进程.这个户口操作系统被称为PCB(进程控制块),在linux中具体实现是 task_struct数据结构 ...

  9. Linux下java进程CPU占用率高分析方法

    Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...

随机推荐

  1. 无法打开物理文件mdf,操作系统错误 5:"5(拒绝訪问。)"

    无法打开物理文件mdf,操作系统错误 5:"5(拒绝訪问.)" 环境: SQL Server 2008 R2 问题: 附加数据库时报错"无法打开物理文件mdf.操作系统错 ...

  2. thinkphp 删除该表的最后一行

    问题叙述性说明: 文章连接动态连接表格,因为有被添加.有必须删除.动态添加到表格这似乎有点不合理.它应该只被添加到表格行.而不是增加一个新表格. 发布完整的代码在这里,加入表格新行和删除表格最后一行. ...

  3. java.lang.reflect操作对象属性(域)的值

    package reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.l ...

  4. QtQuick桌面应用程序开发指导 3)达到UI而功能_B 4)动态管理Note物_A

    3.2 把Page Item和Marker Item绑定 之前我们实现了PagePanel组件, 使用了三个state来切换Page组件的opacity属性; 这一步我们会使用Marker和Marke ...

  5. Asp.net .net(C#) 获取当前命名空间,类名,方法名的方法

    public static string GetMethodInfo() {     string str = "";      //取得当前方法命名空间     str += & ...

  6. CSS浏览器兼容性问题集()两

    11.非常适合    高度适合于被改变时所述内目标高度的外层的高度不能自己主动调节,尤其是排队对象时margin 要么paddign 时. 例:   #box {background-color:#e ...

  7. 使用 Eclipse 的 SVN 主要插件创建项目/支/标签

    原文 阅读 Mark Phippard 该博客以及<Subversion 与版本号控制>之后,我了解到 分支/标签 是 SVN 非常棒的特性之中的一个.但我在使用推荐的 "tru ...

  8. PHP_零基础学php_3PHP函数、传参函数、默认参数、函数返回值

    <?php function say_hello() //无参数 { $name="tang"; echo "hello,".$name; echo &q ...

  9. Junit指定测试运行顺序

    原文链接: Test execution order原始日期: 2012年12月06日本期: 2014年7月2日翻译人员: 铁锚 说明: Junit4.11版本号及以后才支持,建议升级到最新版本号. ...

  10. Mysql C语言API编程入门讲解

    原文:Mysql C语言API编程入门讲解 软件开发中我们经常要访问数据库,存取数据,之前已经有网友提出让鸡啄米讲讲数据库编程的知识,本文就详细讲解如何使用Mysql的C语言API进行数据库编程.   ...