[poky] V3 [PATCH 3/4] Add pidofproc to ${sysconfdir}/init.d/functions

Darren Hart dvhart at linux.intel.com
Mon May 16 22:22:41 PDT 2011



On 05/16/2011 07:40 PM, Robert Yang wrote:
> 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 at windriver.com>
> ---
>  .../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 ac99e11..1c8e5ce 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".

This entire block is still indented with 4 spaces instead of tabs.

--
Darren

> +    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
>  }

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel



More information about the poky mailing list