fiss

Friedel's Initialization and Service Supervision
Log | Files | Refs | LICENSE

readme.md (4934B)


      1 # fiss (Friedel's Initialization and Service Supervision)
      2 
      3 > 0.3.3 (May 2023)
      4 
      5 fiss 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 
      7 fiss 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 
     11 fiss 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 
     23 Thanks to D. J. Bernstein for [`daemontools`](http://cr.yp.to/daemontools.html) and build a sane and beautiful service management system. 
     24 
     25 Thanks to G. Pape to contribute and extend `daemontool` by building the init-system [`runit`](http://smarden.org/runit/).
     26 
     27 Thanks 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 
     29 Without you, `fiss` would not be possible :heart:!
     30 
     31 ## Contributing
     32 
     33 Contributing is always welcome :grin:! 
     34 
     35 This is possible by issueing problems or ideas at [GitHub](https://github.com/friedelschoen/fiss/), I'll look forward to implement them.
     36 
     37 Or 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 
     74 This project is licensed under the terms of the [zlib license](./LICENSE).