#!/bin/bash
# This is an implementation of a start-script for OpenVAS GSA - Greenbone Security Assistant.
# Make RedHat happy:
#
# chkconfig: - 92 9
# Description: OpenVAS Greenbone Security Assistant Daemon
#
### BEGIN INIT INFO
# Provides: openvas-gsa
# 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 OpenVAS GSA
# Description: control OpenVAS GSA
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec="/usr/sbin/gsad"
prog="gsad"
progname="openvas-gsa"
config=/etc/openvas/gsad_log.conf
lockfile=/var/lock/subsys/openvas-gsa
#Values hardcoded in gsad
CACERT="/etc/pki/openvas/CA/cacert.pem"
KEYFILE="/etc/pki/openvas/private/CA/serverkey.pem"
CERTFILE="/etc/pki/openvas/CA/servercert.pem"
CLCERT="/etc/pki/openvas/CA/clientcert.pem"
CLKEY="/etc/pki/openvas/private/CA/clientkey.pem"
[ -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 "$GSA_LISTEN" ] && PARAMS="$PARAMS $GSA_LISTEN"
[ -n "$GSA_PORT" ] && PARAMS="$PARAMS $GSA_PORT"
[ -n "$MANAGER_LISTEN" ] && PARAMS="$PARAMS $MANAGE_LISTEN"
[ -n "$MANAGER_PORT" ] && PARAMS="$PARAMS $MANAGER_PORT"
if [ ! -f "$CACERT" ]; then
logger --tag "$progname" "CA Certificate $CACERT specified in the configuration file not found."
logger --tag "$progname" "Try running: openvas-mkcert"
exit 1
fi
if [ ! -f "$KEYFILE" ]; then
logger --tag "$progname" "Private key $KEYFILE specified in the configuration file not found."
logger --tag "$progname" "Try running: openvas-mkcert"
exit 1
fi
if [ ! -f "$CERTFILE" ]; then
logger --tag "$progname" "Public Certificate $CERTFILE specified in the configuration file not found."
logger --tag "$progname" "Try running: openvas-mkcert"
exit 1
fi
if [ ! -f "$CLCERT" ]; then
logger --tag "$progname" "Missing client certificate $CLCERT to connect gsa to openvas-manager."
logger --tag "$progname" "Try running: openvas-mkcert-client -n -i"
exit 1
fi
if [ ! -f "$CLKEY" ]; then
logger --tag "$progname" "Missing client private key $CLKEY to connect gsa to openvas-manager."
logger --tag "$progname" "Try running: openvas-mkcert-client -n -i"
exit 1
fi
echo "Starting $progname:"
daemon --pidfile=/var/run/$prog.pid $prog $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
}
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)
;;
status)
status -p /var/run/$prog.pid $progname
;;
*)
echo "Usage: $0 {start|stop|status|restart|condrestart|reload}"
exit 1
esac
exit 0