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

译文
运维 系统运维
Linux可以说是市面上最稳定的平台之一。可是这并不是说,在这个系统上运行的每个应用程序都会具有同样出众的稳定性。事实上,应用程序常崩溃。不妨深入探讨一些工具,看看当某个软件行为出现异常时,它们如何能帮到你。

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

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

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

所需信息在哪里?

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

  1. ·/var/log/syslog 
  2. ·/var/log/dmesg 

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

  1. 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)中,仔细查找任何线索。

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

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

原文链接:http://www.linux.com/learn/tutorials/770475-troubleshooting-linux-applications-without-using-the-command-line

责任编辑:黄丹 来源: 51CTO.com
相关推荐

2014-06-19 11:42:36

克隆虚拟化应用程序

2011-05-03 09:14:45

QtOvi商店Symbian

2022-04-18 09:07:54

Linux网络延迟

2018-10-29 10:29:16

Linux应用程序

2023-09-23 15:52:21

Linux白板应用程序

2011-03-31 13:15:18

BlackBerry

2015-10-09 16:42:16

GDB 排查Python程序故障

2023-10-25 09:26:23

Linux工具

2009-11-25 10:22:28

Linux应用程序安装

2009-11-18 09:25:02

linux应用程序

2009-10-29 13:16:15

ADO.NET应用程序

2022-09-27 15:16:42

开发Android应用程序

2017-03-24 09:50:00

2015-10-10 16:31:58

2019-03-29 10:22:08

Linux系统故障技巧

2012-03-30 15:47:50

ibmdw

2022-05-14 23:51:31

云计算安全混合云

2009-08-18 14:57:40

服务器故障排查

2021-01-25 09:05:21

Kubernetes命令运维

2020-10-13 12:21:59

Kubernetes程序技巧
点赞
收藏

51CTO技术栈公众号