inetd(8) on Solnix vs Linux and the BSDs

On Solnix, inetd is the SMF delegated restarter for internet services at /usr/sbin/inetd, and it cannot be run from the command line. Linux (inetutils), FreeBSD, OpenBSD and NetBSD run inetd as a daemon configured by inetd.conf. Solnix converts that file into SMF services with inetconv(8) and manages them with inetadm(8) and svcadm(8).

What Solnix runs

A default Solnix system runs the illumos inetd at /usr/sbin/inetd, managed as svc:/network/inetd:default. No other variants are shipped. The page is published in pkgs.solnix.illumos-world-man.

Differences

Compared withTopicWhat differs
all fourcannot be run from the shellSolnix inetd cannot run outside SMF. Run from the command line, it sends a message to stderr mapping the old inetd options to the SMF version. The other four systems start inetd directly, with options such as -d.
Source: Solnix inetd(8) DESCRIPTION; Linux inetd(8) SYNOPSIS; FreeBSD/OpenBSD/NetBSD inetd(8) SYNOPSIS
all fourinetd.conf is no longer the source of truthOn Solnix, services are no longer managed by editing inetd.conf(5). Use inetconv(8) to convert it into SMF services, then manage them with inetadm(8) and svcadm(8). After conversion, edits to the legacy file take no effect. The other systems read /etc/inetd.conf (FreeBSD, OpenBSD, NetBSD default).
Source: Solnix inetd(8) DESCRIPTION; FreeBSD inetd(8) DESCRIPTION; OpenBSD inetd(8) DESCRIPTION; NetBSD inetd(8) DESCRIPTION
all foursynopsis and optionsSolnix inetd takes an optional configuration-file and one of start, stop or refresh. It has no -d, -R or -l. Linux has --debug, --rate and --pidfile. FreeBSD has -a -C -c -d -l -p -R -s -W -w. OpenBSD has -d and -R. NetBSD has -d, -f and -l.
Source: Solnix inetd(8) SYNOPSIS; Linux inetd(8) options; FreeBSD inetd(8) SYNOPSIS; OpenBSD inetd(8) SYNOPSIS; NetBSD inetd(8) SYNOPSIS
all fourrate and connection limitsOn Solnix, limits are per-service SMF properties: max_con_rate (with con_rate_offline timer) and max_copies. Over the limit, a service goes offline and is re-evaluated later. The others use -R rate (FreeBSD and OpenBSD default 256 per minute) or per-entry max fields in inetd.conf.
Source: Solnix inetd(8) Service States (offline); FreeBSD inetd(8) -R; OpenBSD inetd(8) -R, wait/nowait[.max]; Linux inetd(8) -R
FreeBSD, OpenBSD, NetBSDbinding to an addressSolnix sets the bind address per service with the bind_addr property; an empty string means any interface. FreeBSD uses -a address. OpenBSD and NetBSD put an optional listen address in front of the service name in each inetd.conf line.
Source: Solnix inetd(8) Service Properties (bind_addr); FreeBSD inetd(8) -a; OpenBSD inetd(8) DESCRIPTION (host address specifier); NetBSD inetd(8) listen-addr
all fourbind failure handlingOn Solnix, if another server already holds the port, inetd logs it and retries at the bind_fail_interval, up to bind_fail_max times. The service is then degraded if some protocols listen, or in maintenance if none do. The other manuals shown do not describe a retry property.
Source: Solnix inetd(8) DESCRIPTION, Service Properties, Service States (degraded, maintenance)
all fourservice state modelEach Solnix inetd service has an smf(7) state: uninitialized, online, degraded, offline, disabled or maintenance. Disabled and maintenance need administrator intervention to leave. Use inetadm(8) to read the state. The other inetd manuals describe no per-service state machine.
Source: Solnix inetd(8) Service States; FreeBSD/OpenBSD/NetBSD inetd(8) DESCRIPTION
all fourper-service methodsSolnix runs optional methods on state changes: inetd_start (the only compulsory one), inetd_offline, inetd_online, inetd_disable and inetd_refresh. The other systems just invoke the configured server program, with its path and arguments in inetd.conf.
Source: Solnix inetd(8) Service Methods; FreeBSD inetd(8) configuration fields; OpenBSD inetd(8) configuration fields
all fourreloading configurationSolnix inetd rereads all managed service configuration on an SMF refresh request or on SIGHUP, and runs inetd_refresh for online services that need no restart. The visible text of the other pages does not describe reload behaviour.
Source: Solnix inetd(8) DESCRIPTION, Service Methods (inetd_refresh)
FreeBSDTCP WrappersFreeBSD inetd has -W and -w for TCP Wrapping of internal and external services. The Solnix page text in the bundle shows no equivalent option.
Source: FreeBSD inetd(8) -W, -w; Solnix inetd(8) SYNOPSIS
Linuxpidfile and environmentLinux inetutils inetd has -p/--pidfile (default /usr/local/var/run/inetd.pid) and --environment to pass socket information in environment variables. The Solnix page documents neither; SMF supervises the process.
Source: Linux inetd(8) -p, --environment; Solnix inetd(8) SYNOPSIS
NetBSDforeground and config pathNetBSD -d also runs inetd in the foreground, -f runs it in the foreground without debugging, and the configuration path must be absolute unless -d is given. Solnix has no foreground mode.
Source: NetBSD inetd(8) -d, -f, DESCRIPTION; Solnix inetd(8) DESCRIPTION

Everyday tasks

TaskSolnixLinuxFreeBSDOpenBSDNetBSD
bring inetd.conf entries under managementinetconv(8), then inetadm(8) and svcadm(8)—edit /etc/inetd.confedit /etc/inetd.confedit /etc/inetd.conf
show the state of a managed serviceinetadm(8)————
run inetd in the foreground for debuggingnot possible: inetd cannot run outside SMFinetd -dinetd -dinetd -dinetd -d or inetd -f
set the maximum invocations per minutemax_con_rate service propertyinetd -R numberinetd -R rateinetd -R rate—

Standards

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

Writing portable scripts

  • Do not start inetd from a script on Solnix. Use inetconv, inetadm and svcadm there, and edit inetd.conf and start the daemon on the other systems.
  • Treat inetd.conf as per-OS: field syntax differs, such as FreeBSD user[:group][/login-class], OpenBSD wait/nowait[.max], and NetBSD key-values notation.

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.