技术开发 频道

为Linux应用程序排查故障的另类方法

        【IT168 技术】Linux可以说是市面上最稳定的平台之一。可是这并不是说,在这个系统上运行的每个应用程序都会具有同样出众的稳定性。事实上,应用程序常崩溃。你会时不时遇到某个胡作非为的恶意程序,这几乎是不可避免的事情。要是你真摊上这种事,就要知道如何关闭这种应用程序,消除这个不稳定的应用程序可能带来的任何负面影响。要是应用程序不常发生崩溃,那你只要强行关闭应用程序,就可以了。然而,要是你发现它经常崩溃,那就有必要利用手头的工具,帮助查明为什么出现这种情况。

  可供使用的最强大的工具非命令行莫属。借助gdb命令和strace命令之类的工具,你无异于拥有了需要的一切工具,帮助查明什么原因导致那个应用程序屡屡崩溃。对于那些不愿意学用命令行的人来说,可用的工具其功能要逊色一点,不过仍相当有帮助。虽然图形用户界面(GUI)工具无法为你提供发送给开发人员所需的原始数据,但它们可以帮助你排查眼前的问题。这些工具还让你可以深入了解系统,谁不希望这样呢?

  不妨深入探讨这些工具,看看当某个软件行为出现异常时,它们如何能帮到你。我将在Ubuntu 13.10系统上,使用默认情况下已安装或出现在Ubuntu软件中心(Ubuntu Software Center)中的工具,进行演示。

  所需信息在哪里?

  你要明白的头一件事情就是,Linux拥有一个功能异常强大的日志文件系统。这些日志位于/var/log/,是你在为系统排查故障时的最好朋友。用来为系统排查故障的两个最重要的日志文件是:

·/var/log/syslog 
·/var/log/dmesg

  问题是,平常检查这些日志的过程是通过命令行来完成的。打开终端窗口,运行下面这个命令:

less /var/log/syslog

  就会输出日志的全部内容,供你细细查看。但命令行却不是大多数新用户想要面对的东西。实际上,我经常收到好多电子邮件,内容是"我想试一下Linux,但不想非得一直运行命令!"谢天谢地,你可以避免命令行――甚至不用命令行,就能查看日志文件。

  glogg

  这是你要安装的第一个工具,也是唯一的工具。glogg工具是一种支持多平台的GUI,让你可以仔细浏览系统日志文件。这个工具的功能实际上强大得多,而不止浏览这一项(允许使用正则表达式作为搜索工具),但它仍是无需打开终端窗口,就可以查看日志文件的非常好的方法之一。你可以在Ubuntu软件中心找到glogg。想安装该工具,只要执行下面这些步骤:

  1.打开Ubuntu软件中心。

  2.搜索"glogg"(没有双引号)。

  3.在搜索结果中点击glogg。

  4.点击Install(安装)。

  5.出现提示时,键入你的sudo密码。

  6.允许安装完成。

  安装完毕后,你应该会在Unity启动器上看到一个新的图标。点击新启动器,即可打开glogg。当应用程序打开后,你看不到日志被装入。为此,点击左上角的文件夹图标。使用文件管理器,浏览至/var/log,双击系统日志(syslog)。现在你应该会看到glogg装入的好多文末(见图1)。

所需信息在哪里

  现在你能做的就是,搜索该日志,寻找可能与故障有关的任何字符串。要明白,许多应用程序不会直接记入到系统日志,但是你可能会发现一些蛛丝马迹,让你进而找到关于该应用程序的重要信息。可能有所帮助的另一个方法就是,标记应用程序崩溃的确切时间,然后与/var/log/syslog中的时间戳作一番比较。还可以在glogg中打开应用程序日志文件。你需要知道该应用程序把其日志文件具体放在哪里,不然这个方法对你毫无用处。

  比如说,假设你找不到该应用程序的日志文件的位置;于是,你改而找到/var/log/syslog。你知道应用程序曾在凌晨2点15分出现崩溃,于是你打开日志文件,搜索14:15(因为日志采用24小时制)。你会找到标以红色的搜索结果(见图2);仔细检查那些结果,看看能不能找到关于为什么你的应用程序崩溃的任何线索。

所需信息在哪里

  glogg最出色的地方之一就是,它让你可以跟踪分析日志文件。借助该工具,你可以打开某个日志文件,跟踪分析它,并且实时查看写到该文件的任何内容。这样一来,只要通过查看当你打开应用程序后,有没有什么东西写入到日志文件,就能帮助排查故障。

  想跟踪分析日志文件,执行下面这些步骤:

  1.打开glogg。

  2.打开有问题的日志文件。

  3.点击View(查看)> Follow File(跟踪分析文件)。

  这时候,只要任何数据被写入到上述日志,glogg就会自动刷新日志视图。

  但要是在日志文件里面查找需要过于深入钻研Linux系统,或者根本就没有什么结果,该如何是好?你还可以选择Occam's Razor(奥卡姆剃刀)原理,查看这个最简单的解决方案。

  System Monitor

  如果你之前用过Windows,那么就大致了解任务管理器,以及它如何帮助解决问题。许多Linux发行版也有非常类似的工具。你可以在System Monitor中找到Ubuntu对任务管理器的看法。点击超级按键(即"Windows"按键),键入"system"(没有双引号),点击System Monitor图标。等这个工具打开后,你会找到三个易于使用的选项卡:

  Processes(进程):按进程的名称、用户、耗用处理器的百分比、编号(ID)、耗用内存和优先级,列出了所有运行中的进程。

  Resources(资源):显示了处理器、内存及交换和网络等资源的历史信息。

  File Systems(文件系统):显示了设备、设备在哪里挂载、每个设备的大小、可用空间有多大以及已使用了多少空间。

  为应用程序排查故障的关键将是Processes选项卡和Resources选项卡。要是你有某个应用程序被冻结了(又无法退出),可以执行下面这些步骤:

  1.打开System Monitor。

  2.点击Processes(进程)选项卡。

  3.找到进程名称。

  4.鼠标右击进程名称。

  5.选择Open Files(打开文件)。

  6.从随后出现的窗口(见图3)中,仔细查找任何线索。

System Monitor

  要是打开的文件无法为你提供任何信息,最稳妥的办法可能是,索性终止这个应用程序。为此,选择有问题的进程,然后点击End Process(结束进程)。这会强行关闭应用程序。这时候,你可以回到glogg,打开日志文件,跟踪分析该文件,最后重新启动该应用程序。

  为经常崩溃的应用程序排查故障可能是棘手的"兔子洞",大多数用户不想深入钻研。除非你愿意使用功能强大的命令行,否则就得另辟蹊径。借助几个工具,你就可以开始缩小那些问题的范围、查找根源。但愿通过使用这些工具,你可以开始了解管理Linux机器所必不可少的诸多系统和进程,即便每次只是一小步。

0
相关文章