Skip Navigation Links | |
Exit Print View | |
Oracle Solaris Administration: Common Tasks Oracle Solaris 11 Information Library |
1. Locating Information About Oracle Solaris Commands
2. Managing User Accounts and Groups (Overview)
3. Managing User Accounts and Groups (Tasks)
4. Booting and Shutting Down an Oracle Solaris System
5. Working With Oracle Configuration Manager
6. Managing Services (Overview)
9. Managing System Information (Tasks)
10. Managing System Processes (Tasks)
11. Monitoring System Performance (Tasks)
12. Managing Software Packages (Tasks)
14. Scheduling System Tasks (Tasks)
15. Setting Up and Administering Printers by Using CUPS (Tasks)
16. Managing the System Console, Terminal Devices, and Power Services (Tasks)
17. Managing System Crash Information (Tasks)
18. Managing Core Files (Tasks)
Managing Core Files (Task Map)
Setting the Core File Name Pattern
Enabling setuid Programs to Produce Core Files
How to Display the Current Core Dump Configuration
How to Set a Core File Name Pattern
Troubleshooting Core File Problems
19. Troubleshooting System and Software Problems (Tasks)
20. Troubleshooting Miscellaneous System and Software Problems (Tasks)
Core files are generated when a process or application terminates abnormally. Core files are managed with the coreadm command.
For example, you can use the coreadm command to configure a system so that all process core files are placed in a single system directory. This means it is easier to track problems by examining the core files in a specific directory whenever a process or daemon terminates abnormally.
Two new configurable core file paths that can be enabled or disabled independently of each other are:
A per-process core file path, which defaults to core and is enabled by default. If enabled, the per-process core file path causes a core file to be produced when the process terminates abnormally. The per-process path is inherited by a new process from its parent process.
When generated, a per-process core file is owned by the owner of the process with read/write permissions for the owner. Only the owning user can view this file.
A global core file path, which defaults to core and is disabled by default. If enabled, an additional core file with the same content as the per-process core file is produced by using the global core file path.
When generated, a global core file is owned by superuser with read/write permissions for superuser only. Non-privileged users cannot view this file.
When a process terminates abnormally, it produces a core file in the current directory by default. If the global core file path is enabled, each abnormally terminating process might produce two files, one in the current working directory, and one in the global core file location.
By default, a setuid process does not produce core files using either the global or per-process path.
If a global core file directory is enabled, core files can be distinguished from one another by using the variables described in the following table.
|
For example, if the global core file path is set to:
/var/core/core.%f.%p
and a sendmail process with PID 12345 terminates abnormally, it produces the following core file:
/var/core/core.sendmail.12345
You can set a core file name pattern on a global, zone, or per-process basis. In addition, you can set the per-process defaults that persist across a system reboot.
For example, the following coreadm command sets the default per-process core file pattern. This setting applies to all processes that have not explicitly overridden the default core file pattern. This setting persists across system reboots. For example in Solaris 9, the following coreadm command sets the global core file pattern for all processes started by the init process. This pattern will persist across system reboots.
# coreadm -i /var/core/core.%f.%p
The following coreadm command sets the per-process core file name pattern for any processes:
# coreadm -p /var/core/core.%f.%p $$
The $$ symbols represent a placeholder for the process ID of the currently running shell. The per-process core file name pattern is inherited by all child processes.
Once a global or per-process core file name pattern is set, it must be enabled with the coreadm -e command. See the following procedures for more information.
You can set the core file name pattern for all processes run during a user's login session by putting the command in a user's $HOME/.profile or .login file.
You can use the coreadm command to enable or disable setuid programs to produce core files for all system processes or on a per-process basis by setting the following paths:
If the global setuid option is enabled, a global core file path allows all setuid programs on a system to produce core files.
If the per-process setuid option is enable, a per-process core file path allows specific setuid processes to produce core files.
By default, both flags are disabled. For security reasons, the global core file path must be a full pathname, starting with a leading /. If superuser disables per-process core files, individual users cannot obtain core files.
The setuid core files are owned by superuser with read/write permissions for superuser only. Regular users cannot access them even if the process that produced the setuid core file was owned by an ordinary user.
For more information, see the coreadm(1M) man page.
Use the coreadm command without any options to display the current core dump configuration.
$ 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
# coreadm -e process
# coreadm $$ 1180: /home/kryten/corefiles/%f.%p
# coreadm -e global -g /var/core/core.%f.%p
# 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