cas-server | 2 - overseer/command.py | 3 ++ startup/cas-server | 65 ++++++++++++++++++++-------------------------------- 3 files changed, 29 insertions(+), 41 deletions(-)
New commits: commit d81b76389efb986c892f3e527e62b26b9a7f68a1 Author: adam stokes astokes@fedoraproject.org Date: Tue May 25 15:25:49 2010 -0400
more work to daemonize cas-server properly
diff --git a/cas-server b/cas-server index e85ea52..5d84b8b 100755 --- a/cas-server +++ b/cas-server @@ -1,3 +1,3 @@ #!/bin/sh
-python /usr/share/cas/overseer/command.py +exec python "/usr/share/cas/overseer/command.py" "$@" diff --git a/overseer/command.py b/overseer/command.py index 53fcc8f..fe50562 100755 --- a/overseer/command.py +++ b/overseer/command.py @@ -24,6 +24,7 @@ if sys.version_info[:2] < (2,6):
import os import cherrypy +from cherrypy.process.plugins import Daemonizer, PIDFile import simplejson from caslib.db import * from mako.template import Template @@ -137,6 +138,8 @@ class Root:
def main(): root = Root() + Daemonizer(cherrypy.engine).subscribe() + PIDFile(cherrypy.engine, "/var/lock/subsys/cas-server").subscribe() cherrypy.config.update(current_dir + "/site.conf") cherrypy.tree.mount(root, '/', current_dir + "/site.conf") cherrypy.engine.start() diff --git a/startup/cas-server b/startup/cas-server index 81f158b..ab420ca 100755 --- a/startup/cas-server +++ b/startup/cas-server @@ -25,50 +25,42 @@ prog="cas-server" [ -f /etc/cas.conf ] || exit 0
# bin -CASSERVER="/usr/bin/cas-server" +SERVER="/usr/share/cas/overseer/command.py" +LOCK_FILE="/var/lock/subsys/cas-server"
RETVAL=0
-getpid() { - pid=`ps -eo pid,comm | grep cas- | awk '{ print $1 }'` -} - start () { echo -n "Starting $prog: " - getpid - if [ -z "$pid" ]; then - $CASSERVER 2> /dev/null - RETVAL=$? - fi - if [ $RETVAL eq 0 ]; then - touch /var/lock/subsys/cas-server - echo_success - else + status -p $LOCK_FILE $SERVER &> /dev/null + STATUS=$? + if [ $STATUS -eq 0 ]; then + echo -n "Cas server already running." echo_failure + RETVAL=0 + else + if [ $STATUS -eq 1 ]; then + echo -n "Stray lockfile, removing." + rm -f $LOCK_FILE + fi + daemon $SERVER + RETVAL=$? fi - echo - return $RETVAL }
stop() { echo -n "Stopping $prog: " - getpid RETVAL=$? - if [ -n "$pid" ]; then - killproc $pid - sleep 1 - getpid - if [ -z "$pid" ]; then - rm -f /var/lock/subsys/cas-server + if [ -f "$LOCK_FILE" ]; then + killproc -p $LOCK_FILE $SERVER + sleep 1 + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE echo_success else echo_failure fi - else - echo_failure - fi - echo - return $RETVAL }
restart() { @@ -77,14 +69,8 @@ restart() { }
status() { - getpid - if [ -n "$pid" ]; then - echo "$prog is running ..." - else - RETVAL=1 - echo "$prog is stopped" - fi - return $RETVAL + status -p $LOCK_FILE $SERVER + RETVAL=$? }
case "$1" in @@ -98,11 +84,10 @@ case "$1" in restart ;; status) - status $prog - ret=$? + status ;; *) echo $"Usage: $0 {start|stop|status|restart|}" - exit 2 + exit 1 esac -exit $? +exit $RETVAL