initscripts: Add switch to start processes in background

Since systemd, many programs no longer behave like a well-behaved
daemon. To avoid any extra solutions, this patch adds a -b switch which
will start a program in the background and throw away any output.

The behaviour remains unchanged for any other programs.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
This commit is contained in:
Michael Tremer
2021-07-27 08:59:00 +00:00
committed by Arne Fitzenreiter
parent 07300f6a14
commit 0c7ba6523f

View File

@@ -436,6 +436,7 @@ getpids()
#*******************************************************************************
loadproc()
{
local background=""
local pidfile=""
local forcestart=""
local nicelevel=""
@@ -448,6 +449,10 @@ loadproc()
while true
do
case "${1}" in
-b)
background="1"
shift 1
;;
-f)
forcestart="1"
shift 1
@@ -506,8 +511,16 @@ loadproc()
cmd="nice -n "${nicelevel}" ${cmd}"
fi
${cmd}
evaluate_retval # This is "Probably" not LSB compliant, but required to be compatible with older bootscripts
if [ -n "${background}" ]; then
(
${cmd} &>/dev/null
) &
evaluate_retval
else
${cmd}
evaluate_retval # This is "Probably" not LSB compliant, but required to be compatible with older bootscripts
fi
return 0
}