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(a)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