Please note that InitWare is still alpha software. But all disclosed security concerns have now been addressed. Running InitWare as an auxiliary service manager under NetBSD can now, then, be regarded as safe; but beware relying on this in production until a first stable release is made.
The InitWare Suite of Middleware allows you to manage services and system resources as logical entities called units. It runs on NetBSD, GNU/Linux, and all the other modern BSD systems.
Units are automatically scheduled by a job scheduler according to their dependency specifications. A user session manager facilitates tracking of users' login sessions, with each user provided their own dedicated service manager. Finally the InitWare System Log provides a system-wide event log aggregating diverse log sources.
The Suite may run either as an init system or as an auxiliary service management system under another init system. InitWare originates as a fork of systemd and retains compatibility with many systemd interfaces, even on non-Linux platforms.
Platform | Build Status |
---|---|
GNU/Linux (Alpine) | |
FreeBSD | |
NetBSD | |
OpenBSD |
In three ways: InitWare is highly portable, it is more modular, and it is of a much more clearly-defined scope. See The InitWare philosophy.
Some components of systemd failing to provide compelling benefits are dropped; see Dropped components.
Unit-files, the systemctl
, loginctl
, and journalctl
commands (provided as
svcctl
, sessionctl
, and syslogctl
respectively), the systemd1 and Login1
D-Bus APIs, the sd_notify API, the journald stream and datagram socket
protocols, and several other interfaces are largely supported on all ports.
Some details differ by port. See Systemd compatibility.
InitWare is native to NetBSD. It runs on NetBSD, FreeBSD, and GNU/Linux - its first-class targets - as an init system; on macOS, DragonFly BSD and OpenBSD, it runs as an auxiliary service manager. See Support matrix.
Most code is under the GNU Library GPL v2.1, some of it is under liberal licences.
Install the dependencies first: these are a C toolchain, cmake, gperf, m4, awk, pkg-config or pkgconf, and on BSD platforms, libinotify. Then run:
git submodule update --init --recursive && cmake && make && make install
See Building for further details.
Check the Issues and Projects tabs, or the Roadmap.
See Contributing.
Check the Wiki. The Myths and Truths page is a good place to start.