aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKairui Song <kasong@tencent.com>2022-01-06 13:39:30 +0800
committerJóhann B. Guðmundsson <johannbg@gmail.com>2022-02-02 22:51:54 +0000
commit35822f39970b369301e0ff54436d5714dd996896 (patch)
treefaf7be87184b1987964c50d7017712050e43ebd3
parentb3d2dcb71e7af8f605f5f66041ed3c801333e5f1 (diff)
downloaddracut-35822f39970b369301e0ff54436d5714dd996896.tar.gz
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 <kasong@tencent.com>
-rwxr-xr-xmodules.d/99memstrack/memstrack-start.sh14
-rw-r--r--modules.d/99memstrack/memstrack.service2
-rwxr-xr-xmodules.d/99memstrack/module-setup.sh4
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"