172 lines
3.9 KiB
Bash
Executable File
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
|