strace(8) on Solnix vs Linux and the BSDs

On Solnix, strace(8) is the illumos STREAMS trace-message printer, not a system call tracer. It reads STREAMS log driver messages. Linux strace(1) traces a process's system calls and signals, so a Linux strace command line does nothing useful on Solnix.

What Solnix runs

A default Solnix system runs the illumos strace at /usr/bin/strace and /usr/sbin/strace. No other variants are shipped. The bundle does not say how to trace system calls on Solnix. No FreeBSD, OpenBSD or NetBSD counterpart pages are in the bundle, so no BSD comparison is made.

Differences

Compared withTopicWhat differs
Linuxwhat the command doesSolnix strace prints STREAMS event trace messages obtained from the STREAMS log driver. Linux strace runs a command or attaches to a process and records its system calls and the signals it receives.
Source: Solnix strace(8) NAME, DESCRIPTION; Linux strace(1) NAME, DESCRIPTION
Linuxcommand-line syntaxSolnix strace takes only optional triplets 'mid sid level'. It has no option letters and does not run a command. Linux strace takes options such as -p pid, -o file, -e expr and -c, plus a command to run.
Source: Solnix strace(8) SYNOPSIS; Linux strace(1) SYNOPSIS
Linuxattaching to a processSolnix strace has no way to name a process or command to trace. Scripts that use strace -p pid or strace command args will not work as written. The Solnix page documents no equivalent of these forms.
Source: Solnix strace(8) SYNOPSIS, DESCRIPTION; Linux strace(1) SYNOPSIS (-p pid)
Linuxoutput streamSolnix strace writes trace messages to standard output. Linux strace writes to standard error unless -o file is given.
Source: Solnix strace(8) DESCRIPTION; Linux strace(1) DESCRIPTION
Linuxoutput formatA Solnix line has the form '<seq> <time> <ticks> <level> <flags> <mid> <sid> <text>'. The flags are E (also in the error log), F (fatal error) and N (mail sent to root). Linux prints one line per system call, such as open("/dev/null", O_RDONLY) = 3.
Source: Solnix strace(8) DESCRIPTION (format of each trace message); Linux strace(1) DESCRIPTION
LinuxfilteringSolnix filters by triplets of module ID, sub-ID and priority level. The level matches messages at or below the given value, and the token all removes the restriction on any member. Linux filters with -e expr, -P path and similar options.
Source: Solnix strace(8) DESCRIPTION (triplets, all); Linux strace(1) SYNOPSIS (-e expr, -P path)
Linuxlifetime and lost messagesSolnix strace runs until the user terminates it. If messages arrive faster than it can handle, some are lost, and gaps in the sequence numbers show this. Long triplet lists add STREAMS overhead. The Linux page here does not describe this behaviour.
Source: Solnix strace(8) DESCRIPTION, NOTES; Linux strace(1) DESCRIPTION
Linuxconcurrent instancesAny number of Solnix strace processes may open the STREAMS log driver at once. The Linux text in the bundle makes no statement about this.
Source: Solnix strace(8) NOTES

Standards

  • POSIX: strace is not a POSIX.1-2024 utility.
  • Solnix: The Solnix page lists attributes(7) under SEE ALSO. The trimmed text shows no stability table.

Writing portable scripts

  • Do not assume strace traces system calls. On Solnix the command at that name prints STREAMS trace messages and rejects the Linux syntax, so test which implementation is present before calling it.
  • Do not rely on strace for system call tracing in cross-platform scripts. The bundle documents no Solnix tool for that.

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.