FreeInit.org is the community initiative for interoperability and collaboration between init systems.

We use the term init system in a broad sense; not just integrated init systems like systemd, but also supervision suites, service managers, and combinations thereof.

FreeInit.org is not an init system itself; it is an initiative which aims to allow init systems (and related components) to share technology and to work together, by establishing conventions and protocols. Software using init systems (e.g. daemons) will particularly benefit from this, too, by no longer having to deal with as many divergent semantics.

Our initial goals are:

  1. Creating specs for daemons to interact with init systems by, covering features like receiving pre-opened FDs, sending FDs to the init system be stored for later retrieval, and readiness notification.
  2. Creating libfreeinit, a reference implementation in C of our specs, ideal for daemon authors to make use of. A small shim, libfreeinit-systemd, will provide libsystemd-compatible interfaces atop this, giving an upgrade path and an easy way for software to support other init systems.
  3. Promoting the uptake of seatd/libseat, respectively a seat-management daemon and a library providing an abstract interface backed by either seatd or systemd-logind/elogind; its goals are in line with ours.

We are currently working on meta-conventions for specs and some basic specs at our specs GitHub repository . We welcome input from anyone, whether an init system author, a daemon writer, or otherwise. Our other repositories are found within our GitHub organisation.

Our members' projects include: