[mapguide-commits] r8969 - trunk/MgDev/Server/src/Core
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Wed May 25 08:04:48 PDT 2016
Author: jng
Date: 2016-05-25 08:04:48 -0700 (Wed, 25 May 2016)
New Revision: 8969
Modified:
trunk/MgDev/Server/src/Core/mapguidectl
Log:
#2527: Improve mgserver service control script:
- define log_end_msg if not defined in lsb functions (as in CentOS 6)
- define status and restart actions
- exit with failures if something goes wrong
- warn user if trying to start MapGuide and it is already running
- warn user if trying to stop MapGuide and it is not running
- No bash-isms, allowing it to work in base un-configured Ubuntu (whose default shell is dash, not bash)
Patch by Gabriele Monfardini, tested by me.
Modified: trunk/MgDev/Server/src/Core/mapguidectl
===================================================================
--- trunk/MgDev/Server/src/Core/mapguidectl 2016-05-25 13:07:50 UTC (rev 8968)
+++ trunk/MgDev/Server/src/Core/mapguidectl 2016-05-25 15:04:48 UTC (rev 8969)
@@ -1,33 +1,81 @@
#!/bin/sh
+# chkconfig: 345 35 65
+# description: MapGuide Server Daemon
+
# MapGuide init script
. /lib/lsb/init-functions
+
+# Defined here for distributions that don't define log_end_msg
+type log_end_msg > /dev/null 2>&1 || log_end_msg () {
+ retval=$1
+ if [ $retval -eq 0 ]; then
+ log_success_msg
+ else
+ log_failure_msg
+ fi
+ return $retval
+}
+progname="mgserver"
+fullprogname="mgserver daemon"
+
+do_start () {
+ echo -n "Starting MapGuide Server..."
+ pid=$(pgrep -f -u root "${fullprogname}")
+ ret=0
+ if [ -z "$pid" ]
+ then
+ cd /usr/local/mapguideopensource/server/bin && ./mgserverd.sh > /dev/null
+ ret=$?
+ else
+ echo
+ echo -n "MapGuide Server already running (pid $pid)"
+ fi
+ log_end_msg $ret
+}
+
+do_stop () {
+ echo -n "Stopping MapGuide Server"
+ pid=$(pgrep -f -u root "${fullprogname}")
+ ret=0
+ if [ -z "$pid" ]
+ then
+ echo
+ echo -n "MapGuide Server not running"
+ else
+ /bin/kill $pid
+ ret=$?
+ fi
+ log_end_msg $ret
+}
+
+
# Must be superuser
-if [[ $EUID -ne 0 ]]; then
- echo "You must have superuser privileges to run this script"
- exit 1
+if [ $(id -u) -ne 0 ]; then
+ log_failure_msg "You must have superuser privileges to run this script"
+ exit 1
fi
-
+
case "$1" in
- start)
- log_daemon_msg "Starting MapGuide Server"
- pushd /usr/local/mapguideopensource/server/bin > /dev/null
- ./mgserverd.sh
- popd > /dev/null
- log_end_msg 0
- ;;
- stop)
- log_daemon_msg "Stopping MapGuide Server"
- MGPROCESS=`/usr/bin/pgrep -f -u root "mgserver daemon"`
- if [ "$MGPROCESS" != "" ]
- then
- /bin/kill $MGPROCESS
- fi
- log_end_msg 0
- ;;
- *)
- echo "Usage: $0 {start|stop}"
- exit 1
- ;;
+ start)
+ do_start
+ ;;
+ stop)
+ do_stop
+ ;;
+ status)
+ pid=$(pgrep -f -u root "${fullprogname}")
+ [ -z "$pid" ] && echo "$progname is stopped" && RETVAL=3 && exit $RETVAL
+ echo "$progname (pid $pid) is running..."
+ ;;
+ restart)
+ do_stop
+ sleep 2
+ do_start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|restart}"
+ exit 1
+ ;;
esac
exit 0
More information about the mapguide-commits
mailing list