[arch-projects] [PATCH] added get_pid() and ck_pidfile() (FS#18654)

Dave Reisner d at falconindy.com
Fri Jun 10 10:38:04 EDT 2011


On Fri, Jun 10, 2011 at 04:20:33PM +0200, Andrwe Lord Weber wrote:
> get_pid:
>   Arguments: programname
>   Returns:   PID of program
> ck_pidfile:
>   Arguments: PID-file programname
>   Returns:   0 - PID in PID-file is of program
>              1 - PID in PID-file is not of program
> 
> Signed-off-by: Andrwe Lord Weber <archlinux at andrwe.org>
> ---
>  functions |   15 +++++++++++++++
>  1 files changed, 15 insertions(+), 0 deletions(-)
> 
> diff --git a/functions b/functions
> index adf4ea9..9a741e1 100644
> --- a/functions
> +++ b/functions
> @@ -231,6 +231,21 @@ ck_status() {
>  	fi
>  }
>  
> +# Return PID of $1
> +get_pid() {
> +        pidof -o %PPID $1 || return 1
> +}
> +
> +# Check if PID-file $1 is still the active PID-file for command $2
> +ck_pidfile() {
> +        if [ -f "$1" ]; then

This is bash. Double square braces.

> +                fpid=$(<"$1")

read -r fpid <"$1"

> +                ppid=$(get_pid $2)
> +                [ $fpid -eq $ppid ] && return 0

[[ "$fpid" = "$ppid" ]]

Normally I'd agree with using an arithmetic comparison, but this would
throw an error if the pidfile were to contain non numerical chars. We're
never doing any mathmatical operations on these PIDs either, so the
string compare makes more sense.

> +        fi
> +        return 1
> +}
> +
>  # PIDs to be omitted by killall5
>  declare -a omit_pids
>  
> -- 

Glad to see you've figured out git.

d


More information about the arch-projects mailing list