From 35822f39970b369301e0ff54436d5714dd996896 Mon Sep 17 00:00:00 2001 From: Kairui Song Date: Thu, 6 Jan 2022 13:39:30 +0800 Subject: [PATCH] fix(memstrack): drop bash runtime requirement Use nohup instead of disown, and let systemd track the service properly. This makes the scripts POSIX compatible and bash is no longer needed. Signed-off-by: Kairui Song --- modules.d/99memstrack/memstrack-start.sh | 14 +++++--------- modules.d/99memstrack/memstrack.service | 2 +- modules.d/99memstrack/module-setup.sh | 4 ++-- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/modules.d/99memstrack/memstrack-start.sh b/modules.d/99memstrack/memstrack-start.sh index f8bd445f..45f65c2d 100755 --- a/modules.d/99memstrack/memstrack-start.sh +++ b/modules.d/99memstrack/memstrack-start.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # Mount kernel debug fs so debug tools can work. # memdebug=4 and memdebug=5 requires debug fs to be mounted. # And there is no need to umount it. @@ -20,8 +20,6 @@ is_debugfs_ready() { } prepare_debugfs() { - local trace_base - trace_base=$(get_trace_base) # old debugfs interface case. if ! [ -d "$trace_base/tracing" ]; then @@ -44,10 +42,10 @@ fi if [ -n "$DEBUG_MEM_LEVEL" ]; then if [ "$DEBUG_MEM_LEVEL" -ge 5 ]; then echo "memstrack - will report kernel module memory usage summary and top allocation stack" - memstrack --report module_summary,module_top --notui --throttle 80 -o /.memstrack & + nohup memstrack --report module_summary,module_top --notui --throttle 80 -o /.memstrack > /dev/null & elif [ "$DEBUG_MEM_LEVEL" -ge 4 ]; then echo "memstrack - will report memory usage summary" - memstrack --report module_summary --notui --throttle 80 -o /.memstrack & + nohup memstrack --report module_summary --notui --throttle 80 -o /.memstrack > /dev/null & else exit 0 fi @@ -61,9 +59,7 @@ if [ $RET -ne 0 ]; then exit $RET fi +echo $PID > /run/memstrack.pid + # Wait a second for memstrack to setup everything, avoid missing any event sleep 1 - -echo $PID > /run/memstrack.pid -# bash specific - non posix -disown diff --git a/modules.d/99memstrack/memstrack.service b/modules.d/99memstrack/memstrack.service index fce373b5..3717c732 100644 --- a/modules.d/99memstrack/memstrack.service +++ b/modules.d/99memstrack/memstrack.service @@ -7,7 +7,7 @@ ConditionKernelCommandLine=|rd.memdebug=4 ConditionKernelCommandLine=|rd.memdebug=5 [Service] -Type=simple +Type=forking ExecStart=/bin/memstrack-start PIDFile=/run/memstrack.pid StandardInput=null diff --git a/modules.d/99memstrack/module-setup.sh b/modules.d/99memstrack/module-setup.sh index a40cce4e..27563eb4 100755 --- a/modules.d/99memstrack/module-setup.sh +++ b/modules.d/99memstrack/module-setup.sh @@ -11,12 +11,12 @@ check() { } depends() { - echo systemd bash + echo systemd return 0 } install() { - inst_multiple pgrep pkill + inst_multiple pgrep pkill nohup inst "/bin/memstrack" "/bin/memstrack" inst "$moddir/memstrack-start.sh" "/bin/memstrack-start"