The command-CI-server is an utility that allows to:
- define a command precisely via an 
inidefinition file, - run the command periodically in background,
 - run it manually via 
cmd run …command. 
The command can have any output/input redirected in a flexible
manner and also its run directory set, plus some other settings
(like e.g.: an if condition throttling its execution).
If a file called CMD.ini will be found in ~/.config/cmds
it'll be executed in background in configured interval. An
example definition file that runs ctags:
[vars]
q=$HOME/github/zinit
[main]
type=binary
shell=
runnable=ctags -R -e -G
run-path=%q
disabled=no
[args]
arg-1=--options=%q/zsh.ctags
arg-2=--maxdepth=1
arg-3=--languages=zsh
arg-4=%q
[io]
in=stdin
out=[!%q/ctags.out,stdout]
err=[!%q/ctags.out,stdout]
[activation]
on-update-of=%q/config.h
if=\"$(type -w ctags)\" == \"ctags: command\"
interval=70The file is self commenting. The on-update-of field defines
a file whose modification time will be examined for any change.
If no such change occurs then the interval will be used to run
the command every interval of seconds, if also the if
condition is meet. Otherwise, a manual run of the command can
be performed via a command: cmd run ctags. As it can be
seen the command will be run in directory given in run-path,
via a variable %q, which points to a ~/github/zinit directory.
Commands output messages that are forwarded to two different locations:
~/.cache/commandsrv/cmd.log,{path to the command-server directory}/cmd.log.
If you run the command-server command manually, the logs go to the
standard output.
A service-plugin (i.e.: the file make.service.zsh) can use a plugin manager
that supports loading single plugin instance per all active Zsh sessions,
in background. For example, Zinit supports this, add:
zinit lucid service'cmd' param'CMD_COMMAND_PATH→~/cmds; CMD_INTERVAL→70' for \
            zservices/command-serverto ~/.zshrc to have command-server automatically run in background in one of
your zsh sessions, with 70 seconds between each run of any command done by it.
First Zsh instance that will gain a lock will spawn the service. Other Zsh instances will wait. When you close the initial Zsh session, another Zsh will gain lock and resume the service.