deprecate -f option (forking)

Current option -f allows users to run multiple kresd instances at once. That is good in theory has many shortcomings, namely:

  • parent kresd process does not monitor child processes
  • processes cannot be re/started without breaking kresd inter-process communication
  • current implementation of map() command has convoluted error handling (and is error prone)
  • it is harder to monitor processes from outside, e.g. using standard tools in systemd
  • forking and file descriptor passing between instances is a mess

Fixing these shortcomings is of course possible, but it ultimately leads to re-implementation of supervisor process, which is even worse idea. We already have systemd/supervisord/procd for this task so let's rely on that instead of re-inventing wheel.

Proposal:

  • deprecate -f option and map() command in 5.0.0
  • add warning if -f or map() are used
  • add new option -n/--noninteractive which should be used instead of -f 1
  • update manuals to use new option -n + systemd instances to run multiple processes

Wild idea:

  • update map() command to use sockets in rundir instead of FDs inherited from parent? Is it worth the complexity?