Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 16aff668764a4e199af8a3660229f669 > files > 3

openscada-0.6.4.2-1.fc14.src.rpm

diff --git a/data/oscada.init b/data/oscada.init
index 21744dd..cdecaf8 100644
--- a/data/oscada.init
+++ b/data/oscada.init
@@ -13,25 +13,45 @@ WITHOUT_RC_COMPAT=1
 # Source function library.
 . /etc/init.d/functions
 
-LOCKFILE=/var/lock/subsys/openscada
-OPENSCADA=/usr/bin/openscada
+bindir=/usr/bin
+lockfile=/var/lock/subsys/openscadad
+OPENSCADA_BIN=${bindir}/openscada
 ARGS="--demon &> /dev/null"
 RETVAL=0
 
+# Sanity checks.
+[ -x $OPENSCADA_BIN ] || exit 1
+
+# so we can rearrange this easily
+servicename=openscada
+pidfile=/var/run/openscada.pid
+
+RETVAL=0
+
 start()
 {
-	export LANG=uk_UA.UTF-8
-	export LANGUAGE=uk_UA.UTF-8:ru_RU.UTF-8
-	start_daemon --lockfile "$LOCKFILE" --expect-user root -- $OPENSCADA $ARGS
+	echo $"Starting OpenSCADA daemon: "
+	daemon $servicename $ARGS --pid-file=$pidfile
 	RETVAL=$?
-	return $RETVAL
+	if [ $RETVAL -eq 0 ]; then
+	pidproc=$(ps -C $servicename -o pid=|sed 's/ //g')
+	if [ $pidproc ]; then
+	echo "$pidproc" > $pidfile
+	touch $lockfile
+        fi
+    fi
 }
 
 stop()
 {
-	stop_daemon --lockfile "$LOCKFILE" --expect-user root -- $OPENSCADA
+	echo -n $"Stopping OpenSCADA daemon: "
+	killproc -p $pidfile $servicename
 	RETVAL=$?
-	return $RETVAL
+	echo
+	if [ $RETVAL -eq 0 ]; then
+		rm -f $lockfile
+		rm -f $pidfile
+	fi
 }
 
 restart()
@@ -57,17 +77,18 @@ case "$1" in
 		fi
 		;;
 	condrestart)
-		if [ -e "$LOCKFILE" ]; then
-			restart
+		if [ -f $lockfile ]; then
+			stop
+			start
 		fi
 		;;
 	status)
-		status --expect-user root -- $OPENSCADA
+		status $servicename
 		RETVAL=$?
 		;;
-	*)
-		msg_usage "${0##*/} {start|stop|restart|condstop|condrestart|status}"
-		RETVAL=1
+		*)
+		echo $"Usage: $0 {start|stop|restart|condstop|condrestart|status}"
+		RETVAL=2
 esac
 
 exit $RETVAL