Files
finit/doc/service.md
T

27 lines
824 B
Markdown

# Services
## State Machine
![A service's state machine](svc-machine.png "A service's state machine")
A service is bound to a state machine that is in one of six (6)
states. For `run`s and `task`s there is an additional end state called
`DONE`, not shown in the diagram for brevity. All services start in
the `HALTED` state.
The current state depends on the two following conditions:
* `E`: Service enabled. In order for `E` to be satisfied, the service
must be allowed to run in the current runlevel and must not be
blocked. A service may be blocked for several reasons:
- The user has manually stopped the service using `initctl stop
JOB`.
- The binary repeatedly dies after being started. I.e. keeps
crashing.
- The binary is missing in the filesystem.
* `C`: Service conditions are satisfied.