chat(8) on Solnix vs Linux and the BSDs
On Solnix, chat is the illumos chat at /usr/bin/chat, the same PPP dialer helper that FreeBSD, OpenBSD and NetBSD ship. The main differences for a BSD user are -E (environment substitution in scripts), which FreeBSD and OpenBSD do not document, and a documented exit-status table that the BSD pages lack.
The manual pages
- Solnix: chat(8) from
pkgs.solnix.illumos-world-man· illumos.org - FreeBSD: chat(8) 15.1-RELEASE
- OpenBSD: chat(8) 8.0
- NetBSD: chat(8) 11.0
What Solnix runs
A default Solnix system runs the illumos chat at /usr/bin/chat, published in pkgs.solnix.illumos-world-man. No other variants are shipped. The page is dated August 29, 2021.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| FreeBSD, OpenBSD | -E environment substitution | Solnix chat -E enables $xxx environment variable substitution in chat scripts. An unset variable is replaced with nothing. The FreeBSD and OpenBSD pages list no -E and no ENVIRONMENT section.Source: Solnix chat(8) -E, ENVIRONMENT VARIABLES; FreeBSD chat(8) SYNOPSIS; OpenBSD chat(8) SYNOPSIS |
| NetBSD | -E environment substitution | Solnix and NetBSD document -E the same way: $xxx substitution, with an unset variable replaced by nothing.Source: Solnix chat(8) -E; NetBSD chat(8) -E, ENVIRONMENT VARIABLES |
| FreeBSD, OpenBSD, NetBSD | exit status | The Solnix page documents exit codes: 0 success, 1 bad parameters or oversized expect string, 2 I/O error or signal, 3 timeout with no -subsend string, and 4 and up for each ABORT string in order. The BSD pages only say a failed script gives a non-zero code.Source: Solnix chat(8) EXIT STATUS; FreeBSD/OpenBSD/NetBSD chat(8) -t |
| FreeBSD, OpenBSD, NetBSD | retry decisions by exit code | The Solnix page says the termination code tells which ABORT string occurred, for example BUSY versus NO DIALTONE, so a wrapper can retry on one and not the other. The BSD pages do not describe this. Source: Solnix chat(8) EXIT STATUS (last paragraph); FreeBSD/OpenBSD/NetBSD chat(8) OPTIONS |
| FreeBSD, OpenBSD | syslog facility and level | Solnix says -v logs through syslog(3C) with facility local2. FreeBSD adds level info for tracing and err for some errors. OpenBSD says error messages use local2 at level warning, and -v logs at level info. The Solnix page gives no levels.Source: Solnix chat(8) -v; FreeBSD chat(8) -v; OpenBSD chat(8) -S, -v |
| NetBSD | syslog facility | NetBSD says only that logging goes to the SYSLOG and names no facility. Solnix names local2 for the default -v logging.Source: Solnix chat(8) -v; NetBSD chat(8) -v |
| FreeBSD | script argument | The FreeBSD synopsis shows the script as optional ([script]). The Solnix, OpenBSD and NetBSD synopses show it as required. All four pages say the script can come from -f instead.Source: FreeBSD chat(8) SYNOPSIS; Solnix chat(8) SYNOPSIS and script; OpenBSD chat(8) SYNOPSIS; NetBSD chat(8) SYNOPSIS |
| FreeBSD, OpenBSD, NetBSD | -t subexpect wording | Solnix describes the alternate reply as a 'subexpect' string, and the exit status table refers to a '-subsend' string. The BSD -t text only says an alternate reply may be sent.Source: Solnix chat(8) -t, EXIT STATUS 3; FreeBSD/OpenBSD/NetBSD chat(8) -t |
| Linux | Linux counterpart | The bundle includes no Linux chat page, so no Linux comparison is made. Source: Bundle header: counterparts are FreeBSD, OpenBSD and NetBSD only |
Standards
- POSIX: chat is not a POSIX.1-2024 utility.
- Solnix: Interface Stability: Evolving.
Writing portable scripts
- Do not rely on
-Eoutside Solnix and NetBSD: the FreeBSD and OpenBSD pages do not document it. Expand variables in the shell before calling chat. - Treat any non-zero exit as failure. Only the Solnix page documents specific codes (3 for timeout, 4 and up for ABORT strings).
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.