killall(8) on Solnix vs Linux and the BSDs

On Solnix, killall at /usr/sbin/killall is the illumos System V shutdown helper: it sends a signal (default 15) to all active processes and takes no process name. On Linux and FreeBSD, killall kills processes by name, so running it by habit on Solnix as root is dangerous.

What Solnix runs

A default Solnix system runs the illumos killall at /usr/sbin/killall; no other variants are shipped. It is used by shutdown(8) and can be run only by the super-user. To signal processes by name, the Solnix page does not offer a way; see its SEE ALSO for kill(1), ps(1) and fuser(8).

Differences

Compared withTopicWhat differs
Linux, FreeBSDpurpose and argumentsSolnix killall takes only an optional signal and no process names. It signals all active processes. Linux and FreeBSD killall select processes by name and require a name (Linux, unless -u or -Z is given).
Source: Solnix killall(8) SYNOPSIS, DESCRIPTION; Linux killall(1) SYNOPSIS, DESCRIPTION; FreeBSD killall(1) SYNOPSIS, DESCRIPTION
FreeBSDSystem V semanticsFreeBSD's page says its killall has completely different semantics from the traditional System V killall. The System V one kills all processes the user can kill and is intended for system shutdown only. The Solnix page describes that shutdown behaviour.
Source: FreeBSD killall(1) IMPLEMENTATION NOTES; Solnix killall(8) DESCRIPTION
Linux, FreeBSDwho may run itSolnix killall can be run only by the super-user. On FreeBSD, an ordinary user's killall signals only processes with the same real UID, and the super-user may kill any process. The Linux page does not restrict it to root.
Source: Solnix killall(8) DESCRIPTION; FreeBSD killall(1) DESCRIPTION; Linux killall(1) -u
Linux, FreeBSDspecifying the signalSolnix takes a single signal argument, with kill(1) as reference, and defaults to 15. Linux accepts -SIGNAL, -s or --signal by name or number, and defaults to SIGTERM. FreeBSD accepts -SIGNAL by name or number, and defaults to TERM.
Source: Solnix killall(8) SYNOPSIS, DESCRIPTION; Linux killall(1) -s, DESCRIPTION; FreeBSD killall(1) -SIGNAL
Linux, FreeBSDoptionsThe Solnix page documents no options. Linux options such as -e, -i, -o, -q, -r, -u, -v, -w, -y and FreeBSD options such as -d, -j, -m, -t, -u, -z do not exist in the Solnix text.
Source: Solnix killall(8) SYNOPSIS; Linux killall(1) OPTIONS; FreeBSD killall(1) options list
Linux, FreeBSDlisting signalsLinux and FreeBSD killall -l lists signal names. The Solnix page documents no -l; signals are referenced through kill(1).
Source: Linux killall(1) -l; FreeBSD killall(1) -l; Solnix killall(8) DESCRIPTION
Linux, FreeBSDexit statusLinux returns zero if at least one process was killed for each listed command, and non-zero otherwise. FreeBSD exits 0 if some processes were found and signalled, otherwise 1. The Solnix page documents no exit status.
Source: Linux killall(1) DESCRIPTION; FreeBSD killall(1) EXIT STATUS; Solnix killall(8)
Linux, FreeBSDeffect on file systemsSolnix killall terminates all processes with open files so mounted file systems are unbusied and can be unmounted. The Linux and FreeBSD pages describe no such purpose.
Source: Solnix killall(8) DESCRIPTION; Linux killall(1) DESCRIPTION; FreeBSD killall(1) DESCRIPTION

Standards

  • POSIX: killall is not a POSIX.1-2024 utility.

Writing portable scripts

  • Never call killall with a name argument in a script that may run on Solnix. Use pkill or kill with a PID where the system has them, and check the target system's page first.
  • Do not run a bare killall as root on Solnix to stop one program: it sends signal 15 to all active processes.

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.