readme.md (4934B) download
1# fiss (Friedel's Initialization and Service Supervision)
2
3> 0.3.3 (May 2023)
4
5fiss is a lightweight and easy-to-use tool for initializing and supervising long-running services on Unix-like systems. It provides a simple and reliable way to start, stop, and monitor services. It supports automatic restarts, logging, and customizable startup options.
6
7fiss is inspired by tools like [runit](http://smarden.org/runit/) and [daemontools](http://cr.yp.to/daemontools.html), but it aims to be simpler and more flexible, while still providing a similar level of reliability and security.
8
9## Features
10
11fiss provides the following features:
12
13- Automatic restarts: If a service exits unexpectedly, fiss will automatically restart it, up to a configurable number of times.
14- Logging: fiss captures the stdout and stderr of the service and writes them to log files, which can be rotated and compressed.
15- Customizable startup options: fiss allows you to specify environment variables, working directory, umask, and other options for the service.
16- Supervision: fiss monitors the service and ensures that it stays running, or else it terminates the service and retries later.
17- Status monitoring: fiss provides a simple command-line interface to check the status of a service, including its uptime, PID, and exit code.
18- Simple configuration: fiss uses a simple directory structure to store the configuration for each service, making it easy to manage and version control.
19
20
21## Thanks to
22
23Thanks to D. J. Bernstein for [`daemontools`](http://cr.yp.to/daemontools.html) and build a sane and beautiful service management system.
24
25Thanks to G. Pape to contribute and extend `daemontool` by building the init-system [`runit`](http://smarden.org/runit/).
26
27Thanks to the contributers of [Void Linux](`https://voidlinux.org/`) for the [`runit-tools`](https://github.com/void-linux/void-runit) to make some scripts and programs around `runit` to make it an complete init-system for linux.
28
29Without you, `fiss` would not be possible :heart:!
30
31## Contributing
32
33Contributing is always welcome :grin:!
34
35This is possible by issueing problems or ideas at [GitHub](https://github.com/friedelschoen/fiss/), I'll look forward to implement them.
36
37Or if you got some free time left, you can add code to this project do a pull-request! To help you on your way, a little description:
38
39| directory | description |
40|-----------------------|-------------------------------------------------------|
41| .github/ | workflows for github, like building |
42| assets/ | assets for the docs-website |
43| bin/ | resulting executables |
44| bin/*.c | C-sources |
45| bin/*.lnk | links to other executables<sup>1</sup> |
46| bin/*.sh | shell-scripts |
47| contrib/ | helpful files for contributing |
48| contrib/command.txt | internal commands for service's `supervise/control` |
49| contrib/docs.txt | custom documentation and manual format in docs/ |
50| contrib/make.txt | custom make-headers |
51| contrib/serialize.txt | serialization of `supervise/status` |
52| docs/ | pages to include on the website |
53| include/ | C-headers |
54| man/ | manuals |
55| mk/ | common files for `make` |
56| share/ | files for `fiss`, should be installed at `/usr/share` |
57| src/ | C-sources for executables |
58| tools/ | tools for building |
59| tools/make-docs.py | converts a `.txt`-file to `.html` |
60| tools/make-man.py | converts a `.txt`-file to a roff-file |
61| .clang-format | format-specification for `clang-format` |
62| configure | configure behaviour of the resulting executables |
63| fiss.svg | logo of fiss |
64| LICENSE | license-text (zlib-license) |
65| Makefile | makefile for gnu make |
66| readme.md | what you are reading right now |
67
68- <sup>1</sup>plain text files containing the name of the symbolic link
69
70> :warning: please format your modification using `clang-format` and the `.clang-format` specifications!
71
72## Licensing
73
74This project is licensed under the terms of the [zlib license](./LICENSE).