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 --- src/initscripts/system/functions | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/initscripts/system/functions b/src/initscripts/system/functions index d610a524d..e44a2b4a1 100644 --- a/src/initscripts/system/functions +++ b/src/initscripts/system/functions @@ -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 }