mirror of
https://github.com/marcus-alicia/iRedAdmin-Pro-SQL.git
synced 2026-05-26 07:08:10 +00:00
107 lines
2.4 KiB
Bash
Executable File
107 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Author: Zhang Huangbin (zhb@iredmail.org)
|
|
|
|
### BEGIN INIT INFO
|
|
# Provides: api-server
|
|
# Required-Start: $network $syslog
|
|
# Required-Stop: $network $syslog
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: iredadmin instance
|
|
# Description: iredadmin
|
|
### END INIT INFO
|
|
|
|
PROG='iredadmin'
|
|
PIDFILE='/var/run/iredadmin/iredadmin.pid'
|
|
UWSGI_INI_FILE='/opt/www/iredadmin/rc_scripts/uwsgi/debian.ini'
|
|
|
|
check_status() {
|
|
# Usage: check_status pid_number
|
|
PID="${1}"
|
|
l=$(ps -p ${PID} | wc -l | awk '{print $1}')
|
|
if [ X"$l" == X"2" ]; then
|
|
echo "running"
|
|
else
|
|
echo "stopped"
|
|
fi
|
|
}
|
|
|
|
start() {
|
|
if [ -f ${PIDFILE} ]; then
|
|
PID="$(cat ${PIDFILE})"
|
|
s="$(check_status ${PID})"
|
|
|
|
if [ X"$s" == X"running" ]; then
|
|
echo "${PROG} is already running."
|
|
exit 0
|
|
else
|
|
rm -f ${PIDFILE} >/dev/null 2>&1
|
|
fi
|
|
|
|
unset s
|
|
fi
|
|
|
|
mkdir /var/run/iredadmin 2>/dev/null
|
|
chown iredadmin:iredadmin /var/run/iredadmin
|
|
chmod 0755 /var/run/iredadmin
|
|
|
|
echo "Starting ${PROG} ..."
|
|
uwsgi -d \
|
|
--ini ${UWSGI_INI_FILE} \
|
|
--pidfile ${PIDFILE} \
|
|
--log-syslog
|
|
}
|
|
|
|
stop() {
|
|
if [ -f ${PIDFILE} ]; then
|
|
PID="$(cat ${PIDFILE})"
|
|
s="$(check_status ${PID})"
|
|
|
|
if [ X"$s" == X"running" ]; then
|
|
echo "Stopping ${PROG} ..."
|
|
uwsgi --stop ${PIDFILE}
|
|
if [ X"$?" == X"0" ]; then
|
|
rm -f ${PIDFILE} >/dev/null 2>&1
|
|
rm -rf /var/run/iredadmin
|
|
else
|
|
echo -e "\t\t[ FAILED ]"
|
|
fi
|
|
else
|
|
echo "${PROG} is already stopped."
|
|
rm -f ${PIDFILE} >/dev/null 2>&1
|
|
fi
|
|
else
|
|
echo "${PROG} is already stopped."
|
|
fi
|
|
unset s
|
|
}
|
|
|
|
status() {
|
|
if [ -f ${PIDFILE} ]; then
|
|
PID="$(cat ${PIDFILE})"
|
|
s="$(check_status ${PID})"
|
|
|
|
if [ X"$s" == X"running" ]; then
|
|
echo "${PROG} is running."
|
|
exit 0
|
|
else
|
|
echo "${PROG} is stopped."
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "${PROG} is stopped."
|
|
exit 3
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
start) start ;;
|
|
stop) stop ;;
|
|
status) status ;;
|
|
restart) stop && start ;;
|
|
*)
|
|
echo $"Usage: $0 {start|stop|restart|status}"
|
|
RETVAL=1
|
|
;;
|
|
esac
|