#!/bin/bash
# This is an implementation of a start-script for OpenVAS Scanner.
# Make RedHat happy:
#
# chkconfig: - 91 9
# Description: OpenVAS is a vulnerability Scanner
#
### BEGIN INIT INFO
# Provides: openvas-scanner
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $network $syslog
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: start|stop|status|restart|condrestart|reloadplugins OpenVAS Scanner
# Description: control OpenVAS Scanner
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec="/usr/sbin/openvassd"
prog="openvassd"
progname="openvas-scanner"
config=/etc/openvas/openvassd.conf
lockfile=/var/lock/subsys/openvas-scanner
[ -e /etc/sysconfig/$progname ] && . /etc/sysconfig/$progname
rh_status() {
# run checks to determine if the service is running or use generic status
status -p /var/run/$prog.pid $progname
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
start() {
# Build parameters
[ -n "$SCANNER_LISTEN" ] && PARAMS="$PARAMS $SCANNER_LISTEN"
[ -n "$SCANNER_PORT" ] && PARAMS="$PARAMS $SCANNER_PORT"
[ -n "$SCANNER_SRCIP" ] && PARAMS="$PARAMS $SCANNER_SRCIP"
grep -q ca_file $config >& /dev/null
if [ $? -ne 0 ]; then
logger --tag "$progname" "No certificate specified in configuration file. Did you run openvas-mkcert tool?"
exit 2
fi
CACERT=`grep ca_file $config | cut -d= -f2`
if [ \! -z "$CACERT" -a \! -f "$CACERT" ]; then
logger --tag "$progname" "CA Certificate specified in the configuration file not found. Did you run openvas-mkcert tool?"
exit 2
fi
KEYFILE=`grep key_file $config | cut -d= -f2`
if [ \! -z "$KEYFILE" -a \! -f "$KEYFILE" ]; then
logger --tag "$progname" "Private key specified in the configuration file not found. Did you run openvas-mkcert tool?"
exit 2
fi
CERTFILE=`grep cert_file $config | cut -d= -f2`
if [ \! -z "$CERTFILE" -a \! -f "$CERTFILE" ]; then
logger --tag "$progname" "Public Certificate specified in the configuration file not found. Did you run openvas-mkcert tool?"
exit 2
fi
echo "Starting $progname:"
daemon --pidfile=/var/run/$prog.pid $prog -q $PARAMS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $lockfile
return $RETVAL
}
stop() {
echo -n "Stopping $progname: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $lockfile
return $RETVAL
}
restart() {
stop
start
}
reloadplugins() {
echo -n "Reloading OpenVAS plugins: "
killproc $prog -HUP
echo
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
condrestart|try-restart)
rh_status_q || exit 0
$1
;;
reload)
;;
reloadplugins)
rh_status_q || exit 0
$1
;;
status)
status -p /var/run/$prog.pid $progname
;;
*)
echo "Usage: $0 {start|stop|status|restart|condrestart|reload|reloadplugins}"
exit 1
esac
exit 0