#
# description: Manages all PLC services on this machine
#
-# $Id: host.init,v 1.5 2006/04/18 15:39:34 thierry Exp $
+# $Id: host.init,v 1.8 2006/07/06 17:43:52 mlhuang Exp $
#
PATH=/sbin:/bin:/usr/bin:/usr/sbin
# Source function library.
-. /etc/init.d/functions
+if [ -f /etc/init.d/functions ] ; then
+ . /etc/init.d/functions
+fi
+
+# If success() or failure() are not defined
+if ! type -type success >/dev/null || ! type -type failure >/dev/null ; then
+ success() {
+ echo -ne "[ OK ]\r"
+ return 0
+ }
+ failure() {
+ echo -ne "[FAILED]\r"
+ return 1
+ }
+fi
# Source configuration
-if [ -f /etc/sysconfig/plc -a -z "${PLC_ROOT}${PLC_DATA}" ] ; then
- . /etc/sysconfig/plc
+SERVICE=$(basename $0)
+if [ ! -f /etc/sysconfig/$SERVICE ] ; then
+ SERVICE=plc
+fi
+if [ -f /etc/sysconfig/$SERVICE -a -z "${PLC_ROOT}${PLC_DATA}" ] ; then
+ . /etc/sysconfig/$SERVICE
fi
# Total number of errors
start ()
{
- mount_plc
+ # Starting everything
+ if [ -z "$1" ] ; then
+ mount_plc
+ fi
chroot $PLC_ROOT /sbin/service plc $PLC_OPTIONS start $*
check
check
fi
- umount_plc
-
+ # Stopped everything
+ if [ -z "$1" ] ; then
+ umount_plc
+ fi
}
-mount_status ()
+mountstatus_plc ()
{
- lines=$(mount | grep $PLC_ROOT)
- if [ -z "$lines" ] ; then
- echo "==== $PLC_ROOT is *not* mounted"
- else
- echo "==== The following mount points remain active"
- echo "$lines"
- fi
+ for dir in $PLC_ROOT/proc $PLC_ROOT/data $PLC_ROOT ; do
+ if mounted $dir ; then
+ echo $dir
+ fi
+ done
}
# Get command
start $*
;;
- mount|umount)
- ${command}_plc $*
- ;;
+ reload)
+ chroot $PLC_ROOT /sbin/service plc $PLC_OPTIONS reload $*
+ ;;
- mountstatus)
- mount_status $*
+ mount|umount|mountstatus)
+ ${command}_plc $*
;;
*)
- echo "Usage: $0 {start|stop|restart|mount|umount|mountstatus}"
+ echo "Usage: $0 {start|stop|restart|reload|mount|umount|mountstatus}"
RETVAL=1
;;
esac