]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
fix(memstrack): drop bash runtime requirement
authorKairui Song <kasong@tencent.com>
Thu, 6 Jan 2022 05:39:30 +0000 (13:39 +0800)
committerJóhann B. Guðmundsson <johannbg@gmail.com>
Wed, 2 Feb 2022 22:51:54 +0000 (22:51 +0000)
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 <kasong@tencent.com>
modules.d/99memstrack/memstrack-start.sh
modules.d/99memstrack/memstrack.service
modules.d/99memstrack/module-setup.sh

index f8bd445ffdab42f758c7971228b38d031c9ad662..45f65c2d7af6b990c8367d5b0224287d89e8a152 100755 (executable)
@@ -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
index fce373b54a2f3656c4c3ee9fa6ed61d25b3442ef..3717c7323e284cb75e27e707119b40d206137725 100644 (file)
@@ -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
index a40cce4e75d05ddb23cd198f85cc77edcb734e3b..27563eb47d62fec3a3aeebb69fee86ced723926d 100755 (executable)
@@ -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"