add mass restart support to kojivmd
This commit is contained in:
parent
508b739120
commit
482531dcd3
3 changed files with 24 additions and 3 deletions
|
|
@ -218,7 +218,6 @@ fi
|
|||
|
||||
%post vm
|
||||
/sbin/chkconfig --add kojivmd
|
||||
/sbin/service kojivmd condrestart &> /dev/null || :
|
||||
|
||||
%preun vm
|
||||
if [ $1 = 0 ]; then
|
||||
|
|
|
|||
10
vm/kojivmd
10
vm/kojivmd
|
|
@ -23,7 +23,8 @@
|
|||
import koji
|
||||
import koji.util
|
||||
from koji.daemon import SCM, TaskManager
|
||||
from koji.tasks import ServerExit, BaseTaskHandler, MultiPlatformTask
|
||||
from koji.tasks import ServerExit, ServerRestart, BaseTaskHandler, MultiPlatformTask
|
||||
from koji.tasks import RestartTask, RestartVerifyTask
|
||||
import sys
|
||||
import logging
|
||||
import os
|
||||
|
|
@ -181,7 +182,11 @@ def main(options, session):
|
|||
tm.scanPlugin(pt.load(name))
|
||||
def shutdown(*args):
|
||||
raise SystemExit
|
||||
def restart(*args):
|
||||
logger.warn("Initiating graceful restart")
|
||||
tm.restart_pending = True
|
||||
signal.signal(signal.SIGTERM,shutdown)
|
||||
signal.signal(signal.SIGUSR1,restart)
|
||||
taken = False
|
||||
tm.cleanupAllVMs()
|
||||
while True:
|
||||
|
|
@ -192,6 +197,9 @@ def main(options, session):
|
|||
except (SystemExit,ServerExit,KeyboardInterrupt):
|
||||
logger.warn("Exiting")
|
||||
break
|
||||
except ServerRestart:
|
||||
logger.warn("Restarting")
|
||||
os.execv(sys.argv[0], sys.argv)
|
||||
except koji.AuthExpired:
|
||||
logger.error('Session expired')
|
||||
break
|
||||
|
|
|
|||
|
|
@ -54,6 +54,17 @@ restart() {
|
|||
start
|
||||
}
|
||||
|
||||
graceful() {
|
||||
#SIGUSR1 initiates a graceful restart
|
||||
pid=$(pidofproc kojivmd)
|
||||
if test -z "$pid"
|
||||
then
|
||||
echo $"$prog not running"
|
||||
else
|
||||
kill -10 $pid
|
||||
fi
|
||||
}
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start)
|
||||
|
|
@ -71,8 +82,11 @@ case "$1" in
|
|||
condrestart|try-restart)
|
||||
[ -f /var/lock/subsys/kojivmd ] && restart || :
|
||||
;;
|
||||
graceful)
|
||||
graceful
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|graceful}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue