1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-02-03 13:47:01 +03:00

feature #1859: start/stop/restart actions for scheduler

This commit is contained in:
Javi Fontan 2013-04-04 12:33:44 +02:00
parent 1f3505f20b
commit 2cca4c5676
4 changed files with 138 additions and 22 deletions

View File

@ -63,11 +63,41 @@ stop() {
return $RETVAL
}
start-sched() {
echo -n $"Starting OpenNebula scheduler: "
daemon --user oneadmin $ONE_BIN start-sched
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
[ $RETVAL -eq 0 ] && rm -f $LOCKFILE
return $RETVAL
}
stop-sched() {
echo -n $"Stopping OpenNebula scheduler: "
daemon --user oneadmin $ONE_BIN stop-sched
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
[ $RETVAL -eq 0 ] && rm -f $LOCKFILE
return $RETVAL
}
restart() {
stop
start
}
restart-sched() {
stop-sched
sleep 1
start-sched
}
case "$1" in
start)
@ -79,6 +109,9 @@ stop)
restart)
restart
;;
restart-sched)
restart-sched
;;
status)
status $prog
RETVAL=$?

View File

@ -47,6 +47,16 @@ do_stop()
su oneadmin -s /bin/sh -c 'one stop'
}
do_start_sched()
{
su oneadmin -s /bin/sh -c 'one start-sched'
}
do_stop_sched()
{
su oneadmin -s /bin/sh -c 'one stop-sched'
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
@ -87,6 +97,22 @@ case "$1" in
# Failed to stop
log_end_msg 1
;;
restart-sched)
log_daemon_msg "Restarting scheduler"
do_stop_sched
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)

View File

@ -47,6 +47,16 @@ do_stop()
su oneadmin -s /bin/sh -c 'one stop'
}
do_start_sched()
{
su oneadmin -s /bin/sh -c 'one start-sched'
}
do_stop_sched()
{
su oneadmin -s /bin/sh -c 'one stop-sched'
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
@ -87,6 +97,22 @@ case "$1" in
# Failed to stop
log_end_msg 1
;;
restart-sched)
log_daemon_msg "Restarting scheduler"
do_stop_sched
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)

View File

@ -74,6 +74,13 @@ setup()
# Function that stops the daemons
#------------------------------------------------------------------------------
stop()
{
stop_oned
stop_sched
}
stop_oned()
{
if [ -f $ONE_PID ]; then
PID=$(cat $ONE_PID)
@ -91,7 +98,10 @@ stop()
rm -f $ONE_PID > /dev/null 2>&1
fi
}
stop_sched()
{
if [ -f $ONE_SCHEDPID ]; then
kill `cat $ONE_SCHEDPID` > /dev/null 2>&1
rm -f $ONE_SCHEDPID > /dev/null 2>&1
@ -130,30 +140,10 @@ start()
fi
# Start the one daemon
$ONED -f 2>&1 &
LASTRC=$?
LASTPID=$!
if [ $LASTRC -ne 0 ]; then
echo "Error executing $ONED"
exit 1
else
echo $LASTPID > $ONE_PID
fi
start_oned
# Start the scheduler
$ONE_SCHEDULER&
LASTRC=$?
LASTPID=$!
if [ $LASTRC -ne 0 ]; then
echo "Error executing $ONE_SCHEDULER"
exit 1
else
echo $LASTPID > $ONE_SCHEDPID
fi
start_sched
# Wait for the daemons to warm up
sleep 2
@ -180,6 +170,36 @@ start()
fi
}
start_oned()
{
$ONED -f 2>&1 &
LASTRC=$?
LASTPID=$!
if [ $LASTRC -ne 0 ]; then
echo "Error executing $ONED"
exit 1
else
echo $LASTPID > $ONE_PID
fi
}
start_sched()
{
$ONE_SCHEDULER&
LASTRC=$?
LASTPID=$!
if [ $LASTRC -ne 0 ]; then
echo "Error executing $ONE_SCHEDULER"
exit 1
else
echo $LASTPID > $ONE_SCHEDPID
fi
}
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
@ -197,6 +217,17 @@ case "$1" in
stop
echo "oned and scheduler stopped"
;;
start-sched)
start_sched
;;
stop-sched)
stop_sched
;;
restart-sched)
stop_sched
sleep 1
start_sched
;;
*)
echo "Usage: one [-f] {start|stop}" >&2
echo "Options:" >&2