Earlier quoted context omitted.
OpenRC is great, there's just no flashy marketing behind it or team of consultants pushing it. EDIT: Heh. At least I can debug a shell script, I can't debug a config file. I think this is a fundamental disagreement many people have in what's ultimately desirable when designing software. I personally can't stand non-trivial config files and both at work and at home have wasted way too much time pulling apart software…
#!/sbin/openrc-run depend() { need net } # Export some ENVs for it export SERVER_ADDRESS="0.0.0.0:8088" name="my-program" description="My program" command="/usr/local/bin/my-program" # If it does not know how to background iself command_background=true pidfile="/run/${RC_SVCNAME}.pid" # To have logs output_log="/var/log/${RC_SVCNAME}.log" error_log="/var/log/${RC_SVCNAME}.err" It seems that it still uses Turing-compl…
it works, it's extensible, and a simple service is just as declarative as systemd, but when you need to do something more complex (e.g. checking conditions before starting), you don't need to create a separate script to do so or pile up 10 ExecStartPre lines, just `start_pre() { ... }` away
i've seen people again and again complain of "but shell scripts", while the default functions provide an interface with declarative variables right there, what is the actual issue with it?