pandorafms/pandora_server/util/tentacle_serverd

150 lines
3.1 KiB
Bash
Executable File

#!/bin/bash
# Copyright (c) 2005-2010 Artica ST
#
# Author: Sancho Lerena <slerena@artica.es> 2006-2009
#
# /etc/init.d/tentacle_server
#
# System startup script for Tentacle Server
#
### BEGIN INIT INFO
# Provides: tentacle_server
# Required-Start: $network
# Should-Start: $syslog
# Required-Stop: $network
# Should-Stop: $network
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Short-Description: Tentacle Server startup script
# Description: Tentacle Server startup script
### END INIT INFO
# Check for SUSE status scripts
if [ -f /etc/rc.status ]
then
. /etc/rc.status
rc_reset
else
# Define rc functions for non-suse systems, "void" functions.
function rc_status () { VOID=1; }
function rc_exit () { exit; }
function rc_failed () { VOID=1; }
fi
function get_pid {
# This sets COLUMNS to XXX chars, because if command is run
# in a "strech" term, ps aux don't report more than COLUMNS
# characters and this will not work.
COLUMNS=300
TENTACLE_PID=`ps -Af | grep "$TENTACLE_PATH$TENTACLE_DAEMON" | grep -v grep | tail -1 | awk '{ print $2 }'`
echo $TENTACLE_PID
}
# Pandora server settings
PANDORA_SERVER_PATH="/var/spool/pandora/data_in"
# Tentacle server settings
TENTACLE_DAEMON="tentacle_server"
TENTACLE_PATH="/usr/bin"
TENTACLE_USER="pandora"
TENTACLE_ADDR="0.0.0.0"
TENTACLE_PORT="41121"
TENTACLE_EXT_OPTS="-i.*\.conf:conf;.*\.md5:md5"
# Set umask to 0002, because group MUST have access to write files to
# use remote file management on Pandora FMS Enterprise.
umask 0007
# Main script
TENTACLE_OPTS="-a $TENTACLE_ADDR -p $TENTACLE_PORT -s $PANDORA_SERVER_PATH $TENTACLE_EXT_OPTS -d"
# Fix TENTACLE_PATH
case "$TENTACLE_PATH" in
*\/)
;;
*)
TENTACLE_PATH="${TENTACLE_PATH}/"
;;
esac
if [ ! -f "${TENTACLE_PATH}$TENTACLE_DAEMON" ]; then
echo "Tentacle server not found in ${TENTACLE_PATH}$TENTACLE_DAEMON."
rc_failed 1
rc_exit
fi
case "$1" in
start)
TENTACLE_PID=`get_pid`
if [ ! -z "$TENTACLE_PID" ]; then
echo "Tentacle server is already running with PID $TENTACLE_PID."
rc_failed 2
rc_exit
fi
sudo -u $TENTACLE_USER ${TENTACLE_PATH}$TENTACLE_DAEMON $TENTACLE_OPTS
sleep 1
TENTACLE_PID=`get_pid`
if [ ! -z "$TENTACLE_PID" ]; then
echo "Tentacle server is now running with PID $TENTACLE_PID."
rc_status -v
else
echo "Tentacle server could not be started."
echo "Verify that port $TENTACLE_PORT is not used."
rc_status -v
fi
;;
stop)
TENTACLE_PID=`get_pid`
if [ -z "$TENTACLE_PID" ]; then
echo "Tentacle server does not seem to be running."
rc_failed 2
else
kill $TENTACLE_PID
sleep 1
TENTACLE_PID=`get_pid`
if [ ! -z "$TENTACLE_PID" ]; then
echo "Tentacle server could not be stopped."
rc_status -s
fi
echo "Tentacle server stopped."
rc_status -v
fi
;;
force-reload|restart)
$0 stop
sleep 1
$0 start
rc_status
;;
status)
TENTACLE_PID=`get_pid`
if [ -z "$TENTACLE_PID" ]; then
echo "Tentacle server is not running."
rc_status
else
echo "Tentacle server is running with PID $TENTACLE_PID."
rc_status
fi
;;
*)
echo "Usage: $0 {start | stop | restart | status}"
exit 1
;;
esac
rc_exit