3f561e9b3e
Ensure that the status returns 0 instead of the last shell command result, otherwise the calling script can not properly detect the status of pid. (From OE-Core rev: d9d4fdc769dfe6bf9838f5c5f3189a80f0e3cf90) Signed-off-by: Jesse Zhang <sen.zhang@windriver.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
61 lines
1.4 KiB
Bash
61 lines
1.4 KiB
Bash
# -*-Shell-script-*-
|
|
#
|
|
# functions This file contains functions to be used by most or all
|
|
# shell scripts in the /etc/init.d directory.
|
|
#
|
|
# NOTE: The pidofproc () doesn't support the process which is a script unless
|
|
# the pidof supports "-x" option. If you want to use it for such a
|
|
# process:
|
|
# 1) If there is no "pidof -x", replace the "pidof $1" with another
|
|
# command like(for core-image-minimal):
|
|
# ps | awk '/'"$1"'/ {print $1}'
|
|
# Or
|
|
# 2) If there is "pidof -x", replace "pidof" with "pidof -x".
|
|
#
|
|
# pidofproc - print the pid of a process
|
|
# $1: the name of the process
|
|
pidofproc () {
|
|
|
|
# pidof output null when no program is running, so no "2>/dev/null".
|
|
pid=`pidof $1`
|
|
status=$?
|
|
case $status in
|
|
0)
|
|
echo $pid
|
|
return 0
|
|
;;
|
|
127)
|
|
echo "ERROR: command pidof not found" >&2
|
|
exit 127
|
|
;;
|
|
*)
|
|
return $status
|
|
;;
|
|
esac
|
|
}
|
|
|
|
machine_id() { # return the machine ID
|
|
awk 'BEGIN { FS=": " } /Hardware/ \
|
|
{ gsub(" ", "_", $2); print tolower($2) } ' </proc/cpuinfo
|
|
}
|
|
|
|
killproc() { # kill the named process(es)
|
|
pid=`pidofproc $1` && kill $pid
|
|
}
|
|
|
|
status() {
|
|
local pid
|
|
if [ "$#" = 0 ]; then
|
|
echo "Usage: status {program}"
|
|
return 1
|
|
fi
|
|
pid=`pidofproc $1`
|
|
if [ -n "$pid" ]; then
|
|
echo "$1 (pid $pid) is running..."
|
|
return 0
|
|
else
|
|
echo "$1 is stopped"
|
|
fi
|
|
return 3
|
|
}
|