#!/bin/bash
# Path to Grafana binary and configurations (update these paths as per your setup)
GRAFANA_BIN="/usr/sbin/grafana-server"
GRAFANA_CONF="/etc/grafana/grafana.ini"
GRAFANA_WORK_DIR="/var/lib/grafana"
GRAFANA_LOG_DIR="/var/log/grafana"
# Function to start Grafana
start_grafana() {
if pgrep -x "grafana-server" > /dev/null
then
echo "Grafana is already running!"
else
echo "Starting Grafana..."
nohup $GRAFANA_BIN --config=$GRAFANA_CONF cfg:default.paths.data=$GRAFANA_WORK_DIR cfg:default.paths.logs=$GRAFANA_LOG_DIR > /dev/null 2>&1 &
echo "Grafana started!"
fi
}
# Function to stop Grafana
stop_grafana() {
if pgrep -x "grafana-server" > /dev/null
then
echo "Stopping Grafana..."
pkill -f "grafana-server"
echo "Grafana stopped!"
else
echo "Grafana is not running!"
fi
}
# Function to restart Grafana
restart_grafana() {
echo "Restarting Grafana..."
stop_grafana
sleep 2
start_grafana
}
# Parse command line arguments
case "$1" in
start)
start_grafana
;;
stop)
stop_grafana
;;
restart)
restart_grafana
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0