if type -P systemctl > /dev/null; then
systemctl stop memstrack.service
else
- get_pid_of_tracer() {
- local _user _pid _rest
- read _user _pid _rest <<< $(ps aux | grep [m]emstrack | head -1)
- echo $_pid
- }
-
- kill -s INT $(get_pid_of_tracer)
- while [[ -n $(get_pid_of_tracer) ]]; do
+ pkill --signal INT '[m]emstrack'
+ while [[ $(pgrep '[m]emstrack') ]]; do
sleep 1
done
fi
trace_base=$(get_trace_base)
# old debugfs interface case.
if ! [ -d "$trace_base/tracing" ]; then
- mount none -t debugfs $trace_base
+ mount none -t debugfs "$trace_base"
# new tracefs interface case.
elif ! [ -f "$trace_base/tracing/trace" ]; then
mount none -t tracefs "$trace_base/tracing"
#!/bin/bash
check() {
- if find_binary memstrack > /dev/null; then
- dinfo "memstrack is available"
- return 0
+ if ! require_binaries pgrep pkill memstrack; then
+ dinfo "memstrack is not available"
+ dinfo "If you need to use rd.memdebug>=4, please install memstrack and procps-ng"
+ return 1
fi
- dinfo "memstrack is not available"
- dinfo "If you need to use rd.memdebug>=4, please install memstrack"
-
- return 1
+ return 0
}
depends() {
}
install() {
+ inst_multiple pgrep pkill
inst "/bin/memstrack" "/bin/memstrack"
inst "$moddir/memstrack-start.sh" "/bin/memstrack-start"
inst_hook cleanup 99 "$moddir/memstrack-report.sh"
inst "$moddir/memstrack.service" "$systemdsystemunitdir/memstrack.service"
+
$SYSTEMCTL -q --root "$initdir" add-wants initrd.target memstrack.service
}