diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2011-05-17 09:35:57 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-05-18 14:22:53 +0100 |
commit | 114a11628fb04c30cc96c9fd23db7a7fbc4fd02e (patch) | |
tree | 43f36fa822c77099861fb746a6ce6e8aa5a7c51f | |
parent | 60df57a54ebfe8fa1c1574bcd7900c58810aa2d2 (diff) | |
download | openembedded-core-114a11628fb04c30cc96c9fd23db7a7fbc4fd02e.tar.gz openembedded-core-114a11628fb04c30cc96c9fd23db7a7fbc4fd02e.tar.bz2 openembedded-core-114a11628fb04c30cc96c9fd23db7a7fbc4fd02e.tar.xz openembedded-core-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/functions | 32 |
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 ac99e112c..c1eac3efd 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 } |