finit2

Configuration

Unlike SysV init there is only one hardcoded runlevel in finit2, called default. But you can define as many runlevels as you want. To finit2 a runlevel is just a unit, a root unit so to say. And a unit is either a service of a target. No unit is special(*). There is no special runlevel/target for shuting down the system. Instead a shutdown is simply a matter of stopping every running unit.

(*) This is not entirely true. By default finit2 is built with default dependencies which means that every unit (that doesn't exclicitely set defaultdependencies to no) will require sysinit and run after sysinit and basic. So finit2 will include these default dependencies to be more compatible with existing service files. Also note that some service files might depend on units they make certain assumptions about (such as network-online).

A target can be configured in one of two ways. Either by a target-file of with a directory containing links to it's dependencies.

There is currently no utility to manage runlevels. To add a unit to a runlevel you need to create a symlink yourself. There is however a utility called telfinit for communicating with finit2.