coreadm(8) on Solnix vs Linux and the BSDs
coreadm is the illumos command at /usr/bin/coreadm that sets the name, location and content of core files, both system-wide and per process, and saves the system-wide settings across reboots. Linux has no equivalent command in the bundle: core(5) describes the /proc/sys/kernel/core_pattern file, and FreeBSD sysctl(8) is a generic kernel-state tool.
The manual pages
- Solnix: coreadm(8) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: core(5) man-pages-6.18 (different command, similar job)
- FreeBSD: sysctl(8) 15.1-RELEASE (different command, similar job)
What Solnix runs
A default Solnix system runs the illumos coreadm at /usr/bin/coreadm. No other variants are shipped. The page is published by pkgs.solnix.illumos-world-man. Running coreadm with no arguments prints the current configuration.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux | how the core pattern is set | On Solnix you run coreadm -g pattern, and the setting is saved and applied at boot. On Linux the page describes a template in the file /proc/sys/kernel/core_pattern; the visible text does not say how it is saved across reboots.Source: Solnix coreadm(8) DESCRIPTION, -g; Linux core(5) Naming of core dump files |
| FreeBSD | no dedicated core command | FreeBSD uses the general sysctl utility with MIB-style names. The visible part of sysctl(8) lists no core-file variable, so the bundle does not show how to set a core file name on FreeBSD. Source: FreeBSD sysctl(8) DESCRIPTION and variable table; Solnix coreadm(8) SYNOPSIS |
| Linux | pattern specifiers | The letters differ. Solnix: %f executable name, %n node name, %z zone name, %Z zone root, %d executable directory. Linux: %e or %f executable name, %h hostname, %s signal number, %E pathname, %P initial-namespace PID. Solnix has no signal specifier. Source: Solnix coreadm(8) DESCRIPTION (embedded variables); Linux core(5) Naming of core dump files |
| Linux | user and group IDs in the name | Solnix %u and %g expand to the effective user-ID and group-ID. Linux %u and %g expand to the numeric real UID and GID of the dumped process. Source: Solnix coreadm(8) %u, %g; Linux core(5) %u, %g |
| Linux | global pattern must be absolute | Solnix coreadm -g requires the pattern to start with /. The Linux default template is just core, which creates the file in the crashing process's current working directory.Source: Solnix coreadm(8) -g; Linux core(5) DESCRIPTION and Naming of core dump files |
| Linux | per-process settings by unprivileged users | Solnix coreadm -p pattern and -P content set a per-process pattern and content for the listed PIDs, and unprivileged users can run this form. The Linux text visible here describes only the system-wide core_pattern file and the RLIMIT_CORE limit, with no per-process pattern.Source: Solnix coreadm(8) SYNOPSIS second form, DESCRIPTION; Linux core(5) DESCRIPTION |
| Linux | several core files per crash | On Solnix a crashing process can produce up to three core files: per-process, global, and, in a non-global zone, the zone's global location. Each follows the options of its own location. The Linux text visible here describes one core_pattern. Source: Solnix coreadm(8) DESCRIPTION; Linux core(5) Naming of core dump files |
| Linux | selecting core content | Solnix -G and -P take tokens such as stack, heap, text, anon, ctf, symtab, all, none and default, joined with + and -. The visible Linux text mentions only madvise(2) MADV_DONTDUMP excluding part of the address space.Source: Solnix coreadm(8) -G, content tokens; Linux core(5) DESCRIPTION |
| Linux | set-id processes | On Solnix, set-id core dumps are switched with -e or -d of global-setid and proc-setid. Set-id core files are created mode 600, owned by the superuser. Linux refers to prctl(2) PR_SET_DUMPABLE and /proc/sys/fs/suid_dumpable in proc(5).Source: Solnix coreadm(8) -e, DESCRIPTION (setid); Linux core(5) set-user-ID bullet |
| Linux | privilege to change system-wide settings | On Solnix, only users and roles in the "Maintenance and Repair" RBAC profile can use -g, -G, -i, -I, -d and -e. The Linux text visible here does not describe a privilege model for changing core_pattern.Source: Solnix coreadm(8) DESCRIPTION and OPTIONS; Linux core(5) |
| Linux | systemd and size limits | The Linux page says core dumps may instead go to a location determined by systemd(1), and that RLIMIT_CORE set to zero prevents a dump. The visible Solnix text mentions neither. Source: Linux core(5) DESCRIPTION; Solnix coreadm(8) |
Everyday tasks
| Task | Solnix | Linux |
|---|---|---|
| show current core file configuration | coreadm | read /proc/sys/kernel/core_pattern |
| set the global core file name pattern | coreadm -g pattern | write a template to /proc/sys/kernel/core_pattern |
| set core pattern for one running process | coreadm -p pattern pid | — |
| turn off global core dumps | coreadm -d global | — |
| limit core file size | — | set RLIMIT_CORE (shell ulimit) |
Standards
- POSIX: coreadm is not a POSIX.1-2024 utility.
Writing portable scripts
- Do not share a core pattern string between systems: the % specifiers differ, for example %f and %n on Solnix, %e and %h on Linux.
- Detect the platform first, then use coreadm on Solnix or the
/proc/sys/kernel/core_patternfile on Linux.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.