228 lines
7.1 KiB
Diff
228 lines
7.1 KiB
Diff
diff -up pegasus/rpm/tog-pegasus.rc_old pegasus/rpm/tog-pegasus.rc
|
|
--- pegasus/rpm/tog-pegasus.rc_old 2008-12-02 10:00:03.000000000 +0100
|
|
+++ pegasus/rpm/tog-pegasus.rc 2009-09-23 14:52:10.000000000 +0200
|
|
@@ -1,98 +1,153 @@
|
|
-#//%LICENSE////////////////////////////////////////////////////////////////
|
|
-#//
|
|
-#// Licensed to The Open Group (TOG) under one or more contributor license
|
|
-#// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
|
|
-#// this work for additional information regarding copyright ownership.
|
|
-#// Each contributor licenses this file to you under the OpenPegasus Open
|
|
-#// Source License; you may not use this file except in compliance with the
|
|
-#// License.
|
|
-#//
|
|
-#// Permission is hereby granted, free of charge, to any person obtaining a
|
|
-#// copy of this software and associated documentation files (the "Software"),
|
|
-#// to deal in the Software without restriction, including without limitation
|
|
-#// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
-#// and/or sell copies of the Software, and to permit persons to whom the
|
|
-#// Software is furnished to do so, subject to the following conditions:
|
|
-#//
|
|
-#// The above copyright notice and this permission notice shall be included
|
|
-#// in all copies or substantial portions of the Software.
|
|
-#//
|
|
-#// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
-#// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
-#// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
-#// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
-#// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
-#// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
-#// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
-#//
|
|
-#//////////////////////////////////////////////////////////////////////////
|
|
-#! /bin/sh
|
|
-#//
|
|
-#//%/////////////////////////////////////////////////////////////////////////////
|
|
+#!/bin/bash
|
|
+#
|
|
+# chkconfig: - 98 1
|
|
+# description: The Open Group Pegasus cimserver initscript
|
|
+# processname: cimserver
|
|
+# pidfile: /var/run/tog-pegasus/cimserver.pid
|
|
+#
|
|
|
|
### BEGIN INIT INFO
|
|
-# Provides: tog-pegasus
|
|
+# Provides: lsb-pegasus
|
|
# Required-Start: $syslog $network
|
|
# Should-Start: $time
|
|
# Required-Stop: $syslog
|
|
# Default-Start: 3 5
|
|
# Default-Stop: 0 1 2 6
|
|
-# Description: init script for Pegasus CIM server
|
|
+# Description: init script for Pegasus CIMServer
|
|
### END INIT INFO
|
|
|
|
-CIMSERVER_BIN=/opt/tog-pegasus/sbin/cimserver
|
|
+CIMSERVER_BIN=/usr/sbin/cimserver
|
|
prog=cimserver
|
|
+LOCKFILE=/var/lock/subsys/tog-pegasus
|
|
+. /etc/rc.d/init.d/functions
|
|
|
|
-test -x $CIMSERVER_BIN || exit 5
|
|
+[ -e /etc/sysconfig/tog-pegasus ] && . /etc/sysconfig/tog-pegasus;
|
|
+
|
|
+PEGASUS_SSL_CONF_FILE=${PEGASUS_SSL_CONF_FILE:=/etc/Pegasus/ssl.cnf}
|
|
+PEGASUS_SSL_CERT_FILE=${PEGASUS_SSL_CERT_FILE:=/etc/Pegasus/server.pem}
|
|
+PEGASUS_SSL_KEY_FILE=${PEGASUS_SSL_KEY_FILE:=/etc/Pegasus/file.pem}
|
|
+PEGASUS_SSL_TRUSTSTORE=${PEGASUS_SSL_TRUSTSTORE:=/etc/Pegasus/client.pem}
|
|
|
|
-. /lib/lsb/init-functions
|
|
RETVAL=0
|
|
|
|
case "$1" in
|
|
start)
|
|
- echo -n $"Starting up CIM server: "
|
|
- $CIMSERVER_BIN
|
|
- RETVAL=$?
|
|
- [ "$RETVAL" -eq 0 ] && log_success_msg $"$prog start" || log_failure_msg $"$prog start"
|
|
- echo
|
|
- ;;
|
|
+ if [[ $EUID -ne 0 ]]; then
|
|
+ echo "tog-pegasus $1: $CIMSERVER_BIN executed under nonprivileged user"
|
|
+ exit 4
|
|
+ fi
|
|
+ pid=`pidofproc $CIMSERVER_BIN`
|
|
+ RETVAL=$?
|
|
+ if [ "$RETVAL" -eq 0 ]; then
|
|
+ echo "tog-pegasus $1: $CIMSERVER_BIN is already running"
|
|
+ exit 0
|
|
+ fi
|
|
+
|
|
+ if [ ! -e $CIMSERVER_BIN ]; then
|
|
+ echo "tog-pegasus $1: $CIMSERVER_BIN not found"
|
|
+ failure
|
|
+ exit 5
|
|
+ fi
|
|
+
|
|
+ if [ ! -x $CIMSERVER_BIN ]; then
|
|
+ echo "tog-pegasus $1: $CIMSERVER_BIN not executable"
|
|
+ failure
|
|
+ exit 4
|
|
+ fi
|
|
+
|
|
+ if [ ! -e ${PEGASUS_SSL_CONF_FILE} ] || [ ! -e ${PEGASUS_SSL_CERT_FILE} ] ||
|
|
+ [ ! -e ${PEGASUS_SSL_KEY_FILE} ] || [ ! -e ${PEGASUS_SSL_TRUSTSTORE} ]; then
|
|
+ if [ -x /usr/share/Pegasus/scripts/genOpenPegasusSSLCerts ]; then
|
|
+ echo -n "tog-pegasus: Generating cimserver SSL certificates..."
|
|
+ /usr/share/Pegasus/scripts/genOpenPegasusSSLCerts
|
|
+ if [ $? -eq 0 ]; then
|
|
+ success
|
|
+ else
|
|
+ failure
|
|
+ fi
|
|
+ echo
|
|
+ fi
|
|
+ fi
|
|
+ echo -n $"Starting up CIM server: "
|
|
+ $CIMSERVER_BIN ${CIMSERVER_OPTIONS}
|
|
+ RETVAL=$?
|
|
+ if [ "$RETVAL" -eq 0 ]; then
|
|
+ rm -f /var/run/tog-pegasus.pid;
|
|
+ ln -s /var/run/tog-pegasus/"$prog".pid /var/run/tog-pegasus.pid;
|
|
+ touch $LOCKFILE
|
|
+ success
|
|
+ else
|
|
+ failure
|
|
+ fi
|
|
+ echo
|
|
+ ;;
|
|
|
|
stop)
|
|
- echo -n $"Shutting down CIM server: "
|
|
- killproc cimserver
|
|
- RETVAL=$?
|
|
- [ "$RETVAL" -eq 0 ] && log_success_msg $"$prog stop" || log_failure_msg $"$prog stop"
|
|
- echo
|
|
- ;;
|
|
+ if [[ $EUID -ne 0 ]]; then
|
|
+ echo "tog-pegasus $1: $CIMSERVER_BIN executed under nonprivileged user"
|
|
+ exit 4
|
|
+ fi
|
|
+ echo -n $"Shutting down CIM server: "
|
|
+ killproc cimserver
|
|
+ RETVAL=$?
|
|
+ if [ "$RETVAL" -eq 0 ]; then
|
|
+ rm -f $LOCKFILE
|
|
+ rm -f /var/run/tog-pegasus/*
|
|
+ rm -f /var/run/tog-pegasus.pid
|
|
+ success
|
|
+ else
|
|
+ failure
|
|
+ fi
|
|
+ echo
|
|
+ ;;
|
|
+
|
|
status)
|
|
- pid=`pidofproc $CIMSERVER_BIN`
|
|
- RETVAL=$?
|
|
- if [ "$RETVAL" -eq 0 ]; then
|
|
- echo "CIM server is running"
|
|
- else
|
|
- echo "CIM server is not running"
|
|
- fi
|
|
- ;;
|
|
+ pid=`pidofproc $CIMSERVER_BIN`
|
|
+ RETVAL=$?
|
|
+ if [ "$RETVAL" -eq 0 ]; then
|
|
+ echo -n $"CIM server ($pid) is running"
|
|
+ exit 0
|
|
+ else
|
|
+ if [ -e /var/run/tog-pegasus.pid ]; then
|
|
+ echo $"CIM server is not running, but pid file exists"
|
|
+ exit 1
|
|
+ elif [ -e $LOCKFILE ]; then
|
|
+ echo $"CIM server is not running, but lock file exists"
|
|
+ exit 2
|
|
+ else
|
|
+ echo $"CIM server is not running"
|
|
+ exit 3
|
|
+ fi
|
|
+ fi
|
|
+ echo
|
|
+ ;;
|
|
+
|
|
condrestart)
|
|
- pid=`pidofproc $CIMSERVER_BIN`
|
|
- RETVAL=$?
|
|
- if [ "$RETVAL" -eq 0 ]; then
|
|
- $0 stop && $0 start;
|
|
- RETVAL=$?;
|
|
- fi;
|
|
+ pid=`pidofproc $CIMSERVER_BIN`
|
|
+ RETVAL=$?
|
|
+ if [ "$RETVAL" -eq 0 ]; then
|
|
+ $0 stop && $0 start
|
|
+ RETVAL=$?
|
|
+ fi;
|
|
;;
|
|
+
|
|
try-restart)
|
|
- $0 stop && $0 start
|
|
- ;;
|
|
+ $0 stop && $0 start
|
|
+ RETVAL=$?
|
|
+ ;;
|
|
+
|
|
restart|force-reload)
|
|
- $0 stop
|
|
- $0 start
|
|
- ;;
|
|
+ $0 stop
|
|
+ $0 start
|
|
+ RETVAL=$?
|
|
+ ;;
|
|
+
|
|
reload)
|
|
- ;;
|
|
+ ;;
|
|
*)
|
|
- echo "Usage: $0 {start|stop|status|restart|reload|force-reload|try-restart}"
|
|
- exit 1
|
|
+ echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|try-restart}"
|
|
+ [ "$1" = "usage" ] && exit 0
|
|
+ exit 2
|
|
esac
|
|
|
|
exit $RETVAL
|