summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2011-05-17 09:35:57 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-05-18 14:22:53 +0100
commit114a11628fb04c30cc96c9fd23db7a7fbc4fd02e (patch)
tree43f36fa822c77099861fb746a6ce6e8aa5a7c51f
parent60df57a54ebfe8fa1c1574bcd7900c58810aa2d2 (diff)
downloadopenembedded-core-contrib-114a11628fb04c30cc96c9fd23db7a7fbc4fd02e.tar.gz
openembedded-core-contrib-114a11628fb04c30cc96c9fd23db7a7fbc4fd02e.tar.bz2
openembedded-core-contrib-114a11628fb04c30cc96c9fd23db7a7fbc4fd02e.zip
Add pidofproc to ${sysconfdir}/init.d/functions
Add pidofproc to ${sysconfdir}/init.d/functions, this is used for getting the pid of the process. It uses pidof to implement currently, it may also use the pidfile or ps to implement in the future. Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-rw-r--r--meta/recipes-core/initscripts/initscripts-1.0/functions32
1 files changed, 30 insertions, 2 deletions
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/functions b/meta/recipes-core/initscripts/initscripts-1.0/functions
index ac99e112c7..c1eac3efda 100644
--- a/meta/recipes-core/initscripts/initscripts-1.0/functions
+++ b/meta/recipes-core/initscripts/initscripts-1.0/functions
@@ -3,6 +3,35 @@
# 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`
+ case $? in
+ 0)
+ echo $pid
+ return 0
+ ;;
+ 127)
+ echo "ERROR: command pidof not found" >&2
+ exit 127
+ ;;
+ *)
+ return $?
+ ;;
+ esac
+}
machine_id() { # return the machine ID
awk 'BEGIN { FS=": " } /Hardware/ \
@@ -10,6 +39,5 @@ machine_id() { # return the machine ID
}
killproc() { # kill the named process(es)
- pid=`/bin/pidof $1`
- [ "$pid" != "" ] && kill $pid
+ pid=`pidofproc $1` && kill $pid
}