加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux操作系统死机解决方法有哪些

发布时间:2021-11-25 20:39:11 所属栏目:Linux 来源:互联网
导读:Linux 中,有如下几种方法来获取各种崩溃时产生的信息。 1.Core dump Core dump 通常用来调试应用程序错误,当某些应用程序运行出现异常崩溃时,可以开启系统的 core dump 功能,来得到一个程序崩溃时的内存信息,用来分析崩溃原因: 在/etc/profile里加上(或
Linux 中,有如下几种方法来获取各种崩溃时产生的信息。
 
1.Core dump
 
  Core dump 通常用来调试应用程序错误,当某些应用程序运行出现异常崩溃时,可以开启系统的 core dump 功能,来得到一个程序崩溃时的内存信息,用来分析崩溃原因:
 
  在/etc/profile里加上(或者修改)一条:
 
  ulimit -c 0
 
  运行命令:sysctl -w "kernel.core_name_format=/coredump/%n.core"
 
  该命令意思是指core文件放在/coredump目录下,文件名是进程名+.core
 
 
2.Diskdump
 
  diskdump工具提供了在单机上创建和采集vmcore(kernel dump)的能力,而无须使用网络。当内核本身出现崩溃的时候,当前的内存和CPU状态以及相关的信息都会被保存到一个支持diskdump的磁盘上的保留分区上。在下一次重新启动的时候,当系统重新启动,diskdump的初始化脚本会从保留分区中读取保存的信息并创建一个vcore文件,然后这个文件被再次存放到/var/crash/目录下,文件名为127.0.0.1-
 
  如下是一个配置 HP SCSI 设备上启用 diskdump 的过程,如果不是 HP SCSI 设备(即设备名为 /dev/sdX的形式),则无须执行第三、四两个步骤。但需要在第一步前先执行命令: modprobe
 
  diskdump
 
  第一步:编辑 /etc/sysconfig/diskdump文件,将一个空白分区的设备名填入后保存退出,例如:
 
  DEVICE=/dev/cciss/c0d0p2
 
  第二步:初使化 dump 设备
 
  #service diskdump initialformat
 
  警告:该分区的所以数据会丢失。
 
  第三步:使用 cciss_dump 模块替换当前的 cciss 模块:
 
  在 /etc/modprobe.conf 找到如下行:
 
  alias scsi_hostadapter cciss
 
  修改为:
 
  alias scsi_hostadapter cciss_dump
 
  再增加一行:
 
  options cciss_dump dump_drive=1
 
  注:假设diskdump文件中配置的为 /dev/cciss/c0d[#a]p[#b], 请设置为: options cciss_dump dump_drive=[#a]
 
  第四步:重建 initrd 文件:
 
  #mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.old
 
  #mkinitrd /boot/initrd-`uname -r`.img `uname -r`
 
  第五步:设置 diskdump 服务能够开机自启动:
 
  # chkconfig diskdump on
 
3.Netdump
 
  如果使用红旗DC4.0 或 3.0 版本系统,是不能支持 diskdump 的,可以利用netdump 来达到输出vmcore 的目的。但是Netdump要求至少有一个服务器以及任意数目的客户端。服务器用来接收客户端死机时的信息,客户端是经常死机的机器。
 
(一)服务器配置:
 
  (1).检验netdump服务器是否安装完毕:
 
  rpm -q netdump-server
 
  如果未安装,请在光盘 RedFlag/RPMS/ 目录中找到 netdump-server 打头的软件包,执行命令:
 
  rpm -ivh netdump-server-x.x.x.rpm (x为版本号)
 
  进行安装。
 
  (2).服务器包安装后,用命令:
 
  passwd netdump
 
  更改用户的密码.
 
  (3).打开服务:
 
  chkconfig netdump-server on
 
  (4).运行服务器:
 
  service netdump-server start
 
(二)客户端配置:
 
  (1).校验客户端是否已安装
 
  rpm -q netdump
 
  如果未安装,在光盘 RedFlag/RPMS/ 目录中找到 netdum 打头的软件包,执行命令:
 
  rpm -ivh netdump-x.x.x.rpm (x为版本号)
 
  安装.
 
  (2).编辑文件/etc/sysconfig/netdump,添加如下行:
 
  DEV=eth0
 
  NETDUMPADDR=172.16.81.182
 
  NETDUMPMACADDR=00:0C:29:79:F4:E0
 
  172.16.81.182指 netdump 服务器地址。
 
  (3).运行下面的命令,出现提示符时输入密码:
 
  service netdump propagate
 
  (4).打开客户端:
 
  chkconfig netdump on
 
  (5).运行客户端:
 
  service netdump start
 
  (6).测试
 
  为了测试netdump的配置是否正确,在netdump客户机上做下面操作:
 
  cp /usr/share/doc/netdump-xxxxxx/crash.c .
 
  gcc -DKERNEL -DMODULE -I/lib/modules/$(uname -r)/build/include -c crash.c
 
  insmod ./crash.o
 
  这会造成系统崩溃,会在netdump服务器的/var/crash/<客户端IP>/目录下,看到一个核心转储。当客户机正在转储数据到服务器的时候,你会看到一个名叫“vmcore-incomplete"的文件。当转储结束后,该文件会改名成 "vmcore"。"vmcore"文件的大小会变化,可能达到几个GB.在一个内存是512M的系统上,上面的测试会产生大约510M的vmcore文件。

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读