JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:高级管理     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

关于本书

1.  管理终端和调制解调器(概述)

2.  设置终端和调制解调器(任务)

3.  使用服务访问工具管理串行端口(任务)

4.  管理系统资源(概述)

5.  显示和更改系统信息(任务)

6.  管理磁盘使用(任务)

7.  管理 UFS 配额(任务)

8.  调度系统任务(任务)

9.  管理系统记帐(任务)

10.  系统记帐(参考)

11.  管理系统性能(概述)

12.  管理系统进程(任务)

13.  监视系统性能(任务)

14.  软件问题疑难解答(概述)

15.  管理系统消息

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

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

管理核心文件概述

配置核心文件路径

扩展的核心文件名

设置核心文件名称模式

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

如何显示当前的核心转储配置

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

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

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

核心文件问题故障排除

检查核心文件

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

18.  各种软件问题的故障排除(任务)

19.  文件访问问题故障排除(任务)

20.  解决 UFS 文件系统不一致问题(任务)

21.  软件包问题故障排除(任务)

索引

管理核心文件概述

核心文件是在异常终止进程或应用程序时生成的。使用 coreadm 命令可以管理核心文件。

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

配置核心文件路径

可以独立启用或禁用的两个新的可配置 core 文件路径是:

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

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

扩展的核心文件名

如果启用了全局核心转储文件目录,则可使用下表中介绍的变量来区分 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 -i /var/core/core.%f.%p

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

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

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

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

通过在 $HOME/.profile .login 文件中放置该命令,便可为用户登录会话期间运行的所有进程设置核心文件名称模式。

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

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

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

setuid 核心文件只属于具有超级用户读/写权限的超级用户。即使生成 setuid 核心文件的进程属于普通用户,常规用户也不能访问这些文件。

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

如何显示当前的核心转储配置

使用不带任何选项的 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. 成为超级用户或承担等效角色。

    角色包含授权和具有特权的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置 RBAC(任务列表)"

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

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

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有特权的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置 RBAC(任务列表)"

  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