influxdb/etc/scripts/init.sh

113 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
### BEGIN INIT INFO
# Provides: chronograf
# Required-Start: $local_fs $network $named $time $syslog
# Required-Stop: $local_fs $network $named $time $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start the Chronograf service at boot time
### END INIT INFO
# If you modify this, please make sure to also edit chronograf.service
# Script to execute when starting
SCRIPT="/usr/bin/chronograf"
export HOST="0.0.0.0"
export PORT="8888"
export BOLT_PATH="/var/lib/chronograf/chronograf-v1.db"
export CANNED_PATH="/usr/share/chronograf/canned"
# Options to pass to the script on startup
. /etc/default/chronograf
SCRIPT_OPTS="${CHRONOGRAF_OPTS}"
# User to run the process under
RUNAS=chronograf
# PID file for process
PIDFILE=/var/run/chronograf.pid
# Where to redirect logging to
LOGFILE=/var/log/chronograf/chronograf.log
start() {
if [[ -f $PIDFILE ]]; then
# PIDFILE exists
if kill -0 $(cat $PIDFILE) &>/dev/null; then
# PID up, service running
echo '[OK] Service already running.' >&2
return 0
fi
fi
local CMD="$SCRIPT $SCRIPT_OPTS 1>>\"$LOGFILE\" 2>&1 & echo \$!"
su -s /bin/sh -c "$CMD" $RUNAS > "$PIDFILE"
if [[ -f $PIDFILE ]]; then
# PIDFILE exists
if kill -0 $(cat $PIDFILE) &>/dev/null; then
# PID up, service running
echo '[OK] Service successfully started.' >&2
return 0
fi
fi
echo '[ERROR] Could not start service.' >&2
return 1
}
status() {
if [[ -f $PIDFILE ]]; then
# PIDFILE exists
if ps -p $(cat $PIDFILE) &>/dev/null; then
# PID up, service running
echo '[OK] Service running.' >&2
return 0
fi
fi
echo '[ERROR] Service not running.' >&2
return 1
}
stop() {
if [[ -f $PIDFILE ]]; then
# PIDFILE still exists
if kill -0 $(cat $PIDFILE) &>/dev/null; then
# PID still up
kill -15 $(cat $PIDFILE) &>/dev/null && rm -f "$PIDFILE" &>/dev/null
if [[ "$?" = "0" ]]; then
# Successful stop
echo '[OK] Service stopped.' >&2
return 0
else
# Unsuccessful stop
echo '[ERROR] Could not stop service.' >&2
return 1
fi
fi
fi
echo "[OK] Service already stopped."
return 0
}
case "$1" in
start)
if [[ "$UID" != "0" ]]; then
echo "[ERROR] Permission denied."
exit 1
fi
start
;;
status)
status
;;
stop)
if [[ "$UID" != "0" ]]; then
echo "[ERROR] Permission denied."
exit 1
fi
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|status|stop|restart}"
esac