其他问题

香港服务器设置centos 6和centos 7的内核转储的方法

  1. 内核转储作用

  (1) 内核转储的最大利益是能够保存问题产生时的状态。

  (2) 只要有可履行文件和内核转储,就可以知道过程当时的状态。

  (3) 只要获取内核转储,那么即使没有复现环境,也能调试。

  centos 6 设置内核转储

  统一命令为以下几条命令,后面是解释

  echo "* soft core unlimited" >> /etc/security/limits.conf

  echo "kernel.core_pattern = /tmp/core-%e-%s-%u-%g-%p-%t" >> /etc/sysctl.conf

  echo "fs.suid_dumpable = 2" >> /etc/sysctl.conf

  echo "DAEMON_COREFILE_LIMIT=’unlimited’" >> /etc/sysconfig/init

  sysctl -p

  编辑/etc/security/limits.conf,注意这是为所有过程设置的,但如果你有一个作为服务帐户运行的过程,请用服务帐户调换*。您一定要重新启动此过程以使此更改生效。

  编辑/etc/sysctl.conf并添加放置核心文件和任何命名标准的地位。

  文件名变量:

  %e是文件名

  %g是过程运行的gid

  %p是过程的PID

  %s是导致转储的信号

  %t是转储产生的时间

  %u是过程运行的uid

  编辑/etc / sysconfig / init并设置核心文件限制。

  centos 7 设置内核转储

  echo -e " # enable coredump whith unlimited file-size for all users * soft core unlimited" >> /etc/security/limits.conf

  echo -e " kernel.core_pattern=/tmp/core-%e-%s-%u-%g-%p-%t" >> /etc/sysctl.conf

  echo -e "1" > /proc/sys/kernel/core_uses_pid

  sysctl -p /etc/sysctl.conf

  2,测试是不是生效

  例子的源代码:

  #include

  int main(void)

  {

  int *a = NULL;

  *a = 0x1;

  return 0;

  }

  把以上源代码,写成一个a.c文件后,编译a.c文件产生一个a.out的可履行文件:

  #gcc -g a.c -o a.out

  修正a.out文件的权限后,履行它:

  #./a.out

  就会显示:

  Segmentation fault(core dump)

  这表现在/tmp目录下, 已经生成了a.out对应的内核转储文件。

  注意:后面带有(core dump), 才阐明转储文件成功生成了。




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
上一篇:搭建漫画网站选用香港大带宽服务器的优势
下一篇:Linux目录有什么作用
0

在线
客服

在线客服服务时间:9:00-18:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部