cloudstack/vnet/distro/ubuntu/SYSCONFDIR/init.d/cloud-vnetd.in

105 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# chkconfig: 35 99 05
# description: CloudStack Virtual Network Daemon
# WARNING: if this script is changed, then all other initscripts MUST BE changed to match it as well
. /lib/lsb/init-functions
. /etc/default/rcS
whatami=cloud-vnetd
# set environment variables
SHORTNAME="$whatami"
PIDFILE=@PIDDIR@/"$whatami".pid
LOCKFILE=@LOCKDIR@/"$SHORTNAME"
LOGFILE=@LOCALSTATEDIR@/log/cloud/vnetd.log
PROGNAME="CloudStack Virtual Network Daemon"
unset OPTIONS
[ -r @SYSCONFDIR@/default/"$SHORTNAME" ] && source @SYSCONFDIR@/default/"$SHORTNAME"
DAEMONIZE=@BINDIR@/@PACKAGE@-daemonize
PROG=@SBINDIR@/$SHORTNAME
start() {
log_daemon_msg $"Starting $PROGNAME" "$SHORTNAME"
if [ -s "$PIDFILE" ] && kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
log_progress_msg "apparently already running"
log_end_msg 0
exit 0
fi
if "$DAEMONIZE" -n "$SHORTNAME" -p "$PIDFILE" -l "$LOGFILE" "$PROG" $OPTIONS
RETVAL=$?
then
rc=0
sleep 1
if ! kill -0 $(cat "$PIDFILE") >/dev/null 2>&1; then
log_failure_msg "$PROG failed to start"
rc=1
fi
else
rc=1
fi
if [ $rc -eq 0 ]; then
log_end_msg 0
else
log_end_msg 1
rm -f "$PIDFILE"
fi
}
stop() {
echo -n $"Stopping $PROGNAME" "$SHORTNAME"
start-stop-daemon --stop --quiet --oknodo --pidfile "$PIDFILE"
log_end_msg $?
rm -f "$PIDFILE"
}
recreate_vnets() {
for br in `ip link | grep vnbr | cut -d":" -f2| cut --complement -c1`;
do
vnetid=0000:0000:0000:0000:0000:0000:0000:`echo $br | cut -c5-`
vn vnet-create -b $br $vnetid &> /dev/null;
done
}
# See how we were called.
case "$1" in
start)
start
sleep 1
recreate_vnets
;;
stop)
stop
;;
status)
status_of_proc -p "$PIDFILE" "$PROG" "$SHORTNAME"
RETVAL=$?
;;
restart)
stop
sleep 2
start
recreate_vnets
;;
condrestart)
if [ -f "$PIDFILE" ] ; then
stop
sleep 2
start
recreate_vnets
fi
;;
*)
echo $"Usage: $whatami {start|stop|restart|condrestart|status|help}"
RETVAL=3
esac
exit $RETVAL