v0.10.0: Alpha release
Pre-release
Pre-release
This release is a major step towards a version-1.0 release. It should be considered an Alpha release; core functionality is complete but some ancillary functionality is still unimplemented. It is believed to be of good quality but bugs may be present.
- When not running as system init, dinit will now fail to start if the control socket cannot be opened. In particular this should prevent accidentally starting multiple instances of dinit (and all services).
- Services of type bgproc will no longer load if the pid-file setting is not supplied. Previously such services could be started, but stopping them would leave the process running.
- Re-worked manual service stop (via command). Previously, manually stopping a service would inhibit automatic restart of the service, but not of its dependents; this meant that the service might still restart due to a dependent. In this version, manually stopping a service inhibits restart of the service and all dependents (note that the --force option is required, as previously, in order to stop a service which has active dependents).
- Re-worked soft dependency handling slightly. A dependency now (re-)attaches to its dependent if it starts (or starts again) while the dependent is started. This leads to overall more consistent behaviour (and is simpler to implement properly).
- Re-worked pinning. A service that is pinned stopped can now prevent dependents from starting (the behaviour is the same as if the service failed to start).
- Support start-timeout setting for process services. Previously this setting was ignored for such services. It is mostly useful for services which also have readiness notification configured (since otherwise, a process service is considered started as soon as it begins execution).
- If a process-based service fails to restart, restart of dependent services will be inhibited. This should prevent repeated attempts to launch a failing process caused by a restarting dependent service.
- Fixed some cases where service target state would not be set correctly. This could cause output of "dinitctl list" to incorrectly show that a service would restart after stopping, when in fact it would remain stopped.
- Fixed various corner-case bugs in service management.