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(a)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
}
--
2.20.1