nginx-amplify-agent/etc/chkconfig/amplify-agent

172 lines
3.9 KiB
Bash
Executable File

#!/bin/bash
#
# chkconfig: 2345 50 50
# description: NGINX Amplify Agent
#
# processname: /usr/bin/nginx-amplify-agent.py
# config: /etc/amplify-agent/agent.conf
# pidfile: /var/run/amplify-agent/amplify-agent.pid
### BEGIN INIT INFO
# Provides: nginx-amplify-agent
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop nginx-amplify-agent daemon
# Description: NGINX Amplify Agent daemon
### END INIT INFO
# source function library
. /etc/init.d/functions
RETVAL=0
prog="nginx-amplify-agent"
binary=/usr/bin/nginx-amplify-agent.py
pidfile=/var/run/amplify-agent/amplify-agent.pid
conffile=/etc/amplify-agent/agent.conf
user=nginx
debug_log="$2"
if [ -f "$conffile" ]; then
config_amplify_user=`grep -v '#' ${conffile} | \
grep -A 10 -i '\[.*nginx.*\]' | \
grep -i 'user.*=' | \
awk -F= '{print $2}' | \
sed 's/ //g' | \
head -1`
nginxconf=`grep -v '#' ${conffile} | \
grep -A 10 -i '\[.*nginx.*\]' | \
grep -i 'configfile.*=' | \
awk -F= '{print $2}' | \
sed 's/ //g' | \
head -1`
fi
if [ -z "$nginxconf" ]; then
nginxconf=/etc/nginx/nginx.conf
fi
if [ -f "$nginxconf" ]; then
config_nginx_user=`grep 'user[[:space:]]' ${nginxconf} | \
grep -v '[#].*user.*;' | \
grep -v '_user' | \
sed -n -e 's/.*\(user[[:space:]][[:space:]]*[^;]*\);.*/\1/p' | \
awk '{ print $2 }' | head -1`
fi
if [ -n "$config_amplify_user" ]; then
user=$config_amplify_user
else
test -n "$config_nginx_user" && \
user=$config_nginx_user
fi
start() {
[ -x $binary ] || exit 5
echo -n $"Starting $prog: "
if [ $UID -ne 0 ]; then
RETVAL=1
failure
else
mkdir -p /var/run/amplify-agent && chown $user /var/run/amplify-agent
chown -f $user /etc/amplify-agent/agent.conf
chown -f $user /var/log/amplify-agent/agent.log
daemon --user=$user $binary start --config=$conffile --pid=$pidfile
fi
RETVAL="$?"
echo
if [ "$RETVAL" -ne 0 ]; then
return "$RETVAL"
fi
for i in 1 2 3 4 5; do
if [ -e "$pidfile" ]; then
return 0
fi
sleep 1
done
return 1
}
stop() {
echo -n $"Stopping $prog: "
if [ $UID -ne 0 ]; then
RETVAL=1
failure
else
killproc -p $pidfile $binary
fi;
echo
return $RETVAL
}
restart() {
stop
start
}
configtest() {
[ -x $binary ] || exit 5
if [ $UID -ne 0 ]; then
RETVAL=1
failure
else
$binary configtest --config=$conffile --pid=$pidfile
RETVAL=$?
fi;
return $RETVAL
}
debug() {
[ -x $binary ] || exit 5
if [ $UID -ne 0 ]; then
RETVAL=1
failure
else
$binary debug --config=$conffile --pid=$pidfile --log=$debug_log
RETVAL=$?
fi;
return $RETVAL
}
case "$1" in
start)
if status -p $pidfile amplify-agent >/dev/null 2>&1; then
echo "amplify-agent is already running" >&2
exit 0
fi
if [ -e "$pidfile" ]; then
rm -f "$pidfile"
fi
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart)
restart
RETVAL=$?
;;
status)
status -p $pidfile amplify-agent
RETVAL=$?
;;
configtest)
configtest
RETVAL=$?
;;
debug)
debug
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|status|restart|configtest|debug}"
RETVAL=2
esac
exit $RETVAL