JavaScript is required to for searching.
跳过导航链接
退出打印视图
解决 Oracle Solaris 11.1 中的典型问题     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

1.  管理系统故障转储信息(任务)

2.  管理核心文件(任务)

管理核心文件

配置核心文件路径

扩展的核心文件名

设置核心文件名称模式

启用 setuid 程序以生成核心文件

管理核心文件(任务列表)

显示当前的核心转储配置

如何设置核心文件名称模式

如何启用每进程核心文件路径

如何启用全局核心文件路径

核心文件问题故障排除

检查核心文件

3.  系统和软件问题的故障排除(任务)

4.  其他系统和软件问题的故障排除(任务)

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

管理核心文件

核心文件是在异常终止进程或应用程序时生成的。使用 coreadm 命令可以管理核心文件。例如,可以使用 coreadm 命令来配置系统,以便将所有进程核心文件都放在一个系统目录中。这意味着,当进程或守护进程异常终止时,可通过检查特定目录中的核心文件来跟踪问题。

配置核心文件路径

以下两个可配置的 core 文件路径可以独立于彼此启用或禁用:

当进程异常终止时,缺省情况下会在当前目录中生成一个核心文件。如果启用了全局核心文件,则每个异常终止的进程可能会生成两个文件,一个在当前工作目录中,另一个在全局核心文件位置。

缺省情况下,setuid 进程不使用全局或每进程路径生成核心文件。

扩展的核心文件名

如果启用了全局 core 文件目录,则可以使用下表中介绍的变量来区分各个 core 文件。

变量名
变量定义
%d
可执行文件目录名,最多包含 MAXPATHLEN 个字符
%f
可执行文件名,最多包含 MAXCOMLEN 个字符
%g
有效组 ID
%m
计算机名 (uname -m)
%n
系统节点名 (uname -n)
%p
进程 ID
%t
时间的十进制值 (2)
%u
有效用户 ID
%z
在其中执行进程的区域的名称 (zonename)
%%
字面值 %

例如,如果全局核心文件路径设置为:

/var/core/core.%f.%p

并且 PID 为 12345sendmail 进程异常终止,则会生成以下 core 文件:

/var/core/core.sendmail.12345

设置核心文件名称模式

可以按全局、区域或进程设置核心文件名称模式。此外,可以设置在系统重新引导后保持不变的每进程缺省值。

例如,以下 coreadm 命令将设置缺省的每进程核心文件模式。此设置适用于未显式覆盖缺省核心文件模式的所有进程。此设置在系统重新引导后继续存在。例如,以下 coreadm 命令为 init 进程启动的所有进程设置全局核心文件模式。此模式在系统重新引导后继续存在。

# coreadm -i /var/core/core.%f.%p

以下 coreadm 命令可为任何进程设置每进程核心文件名称模式:

# coreadm -p /var/core/core.%f.%p $$

$$ 符号表示当前正在运行的 Shell 的进程 ID 的占位符。所有子进程都会继承每进程核心文件名称模式。

设置全局或每进程核心文件名称模式之后,必须使用 coreadm -e 命令启用该名称模式。有关更多信息,请参见以下过程。

通过将该命令放入用户的初始化文件(如 .profile)中,可以为用户登录会话期间运行的所有进程设置核心文件名称模式。

启用 setuid 程序以生成核心文件

可以使用 coreadm 命令启用或禁用 setuid 程序,以便通过设置以下路径来为所有系统进程或每个进程生成核心文件:

缺省情况下,这两个标志都被禁用。由于安全原因,全局核心文件路径必须为全路径名,以斜杠 / 开头。如果 root 用户禁用了每进程核心文件,个人用户将无法获取核心文件。

setuid 核心文件归 root 用户所有,只有 root 用户具有读/写权限。一般用户无法访问这些文件,即使生成 setuid 核心文件的进程由普通用户所拥有也是如此。

有关更多信息,请参见 coreadm(1M) 手册页。

管理核心文件(任务列表)

任务
说明
参考
1. 显示当前的核心转储配置。
使用 coreadm 命令显示当前的核心转储配置。
2. 修改核心转储配置。

修改核心转储配置,以执行下列操作之一:

  • 设置核心文件名称模式。
  • 启用每进程核心文件路径。

  • 启用全局核心文件路径。

3. 检查核心转储文件。
使用 proc 工具查看核心转储文件。

显示当前的核心转储配置

使用不带任何选项的 coreadm 命令可以显示当前的核心转储配置。

$ coreadm
               global core file pattern: 
     global core file content: default
       init core file pattern: core
       init core file content: default
            global core dumps: disabled
       per-process core dumps: enabled
      global setid core dumps: disabled
 per-process setid core dumps: disabled
     global core dump logging: disabled

如何设置核心文件名称模式

如何启用每进程核心文件路径

  1. 承担 root 角色。

    请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 启用每进程核心文件路径。
    # coreadm -e process
  3. 显示当前的进程核心文件路径,以验证配置。
    # coreadm $$
    1180:   /home/kryten/corefiles/%f.%p

如何启用全局核心文件路径

  1. 承担 root 角色。

    请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 启用全局核心文件路径。
    # coreadm -e global -g /var/core/core.%f.%p
  3. 显示当前的进程核心文件路径,以验证配置。
    # coreadm
           global core file pattern: /var/core/core.%f.%p
         global core file content: default
           init core file pattern: core
           init core file content: default
                global core dumps: enabled
           per-process core dumps: enabled
          global setid core dumps: disabled
     per-process setid core dumps: disabled
         global core dump logging: disabled