Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
# -*-Shell-script-*-
#
# functions This file contains functions to be used by most or all
# shell scripts in the /etc/init.d directory.
#
# Written by T.Nonogaki @Stray Penguin
TEXTDOMAIN=initscripts
unset -f pidfileofproc pidofproc status
# A function to find the pid of a program. Looks *only* at the pidfile
pidfileofproc() {
local base=${1##*/}
local pidfile=/var/spool/$(basename $0)/pid/master.pid
# Test syntax.
if [ "$#" = 0 ] ; then
echo $"Usage: pidfileofproc {program}"
return 1
fi
# First try "/var/spool/postfix[-deux]/pid/master.pid" file
if [ -f $pidfile ] ; then
local line p pid=
read line < $pidfile
for p in $line ; do
[ -z "${p//[0-9]/}" -a -d /proc/$p ] && pid="$pid $p"
done
if [ -n "$pid" ]; then
echo $pid
return 0
fi
fi
}
# A function to find the pid of a program.
pidofproc() {
base=${1##*/}
local pidfile=/var/spool/$(basename $0)/pid/master.pid
# Test syntax.
if [ "$#" = 0 ]; then
echo $"Usage: pidofproc {program}"
return 1
fi
# First try "/var/spool/postfix[-deux]/pid/master.pid" file
if [ -f $pidfile ]; then
local line p pid=
read line < $pidfile
for p in $line ; do
[ -z "${p//[0-9]/}" -a -d /proc/$p ] && pid="$pid $p"
done
if [ -n "$pid" ]; then
echo $pid
return 0
fi
fi
pidof -o $$ -o $PPID -o %PPID -x $1 || \
pidof -o $$ -o $PPID -o %PPID -x $base
}
status() {
local base=${1##*/}
local pid fpid i
local pidfile=/var/spool/$(basename $0)/pid/master.pid
# Test syntax.
if [ "$#" = 0 ] ; then
echo $"Usage: status {program}"
return 1
fi
# Examin "/var/spool/postfix[-deux]/pid/master.pid" file
if [ -f $pidfile ] ; then
read pid < $pidfile
[ -n "$pid" ] && fpid=$pid
fi
# Then, first try "pidof"
pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
pidof -o $$ -o $PPID -o %PPID -x ${base}`
for i in ${pid[@]}; do
if [ "$i" = "$fpid" ]; then
unset pid
pid=$fpid
break
fi
done
if [ -n "$pid" ]; then
echo $"${base} (pid $pid) is running..."
return 0
fi
# Next try "/var/spool/postfix[-deux]/pid/master.pid" file
if [ -f $pidfile ] ; then
read pid < $pidfile
if [ -n "$pid" ]; then
echo $"${base} dead but pid file exists"
return 1
fi
fi
# See if /var/lock/subsys/postfix[-deux] exists
if [ -f /var/lock/subsys/$(basename $0) ]; then
echo $"${base} dead but subsys locked"
return 2
fi
echo $"${base} is stopped"
return 3
}