+++ /dev/null
-#!/bin/bash
-#
-# plc Manages all PLC services on this machine
-#
-# chkconfig: 2345 99 5
-#
-# description: Manages all PLC services on this machine
-#
-# $Id: host.init,v 1.7.2.4 2006/08/21 21:21:11 mlhuang Exp $
-#
-
-PATH=/sbin:/bin:/usr/bin:/usr/sbin
-
-# Source function library.
-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
-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
-ERRORS=0
-
-# Count the exit status of the last command
-check ()
-{
- ERRORS=$(($ERRORS+$?))
-}
-
-mounted ()
-{
- if cut -d' ' -f2 /proc/mounts | grep -q "$1" ; then
- return 0
- else
- return 1
- fi
-}
-
-mount_plc ()
-{
- echo -n $"Mounting PLC: "
-
- if ! mounted $PLC_ROOT ; then
- if ! e2fsck -a $PLC_ROOT.img | logger -t "PLC" ; then
- e2fsck $PLC_ROOT.img
- fi
- mount -o loop $PLC_ROOT.img $PLC_ROOT
- check
- fi
- if ! mounted $PLC_ROOT/data ; then
- mount -t none -o bind,rw $PLC_DATA $PLC_ROOT/data
- check
- fi
- if [ -d /data/fedora ] ; then
- if ! mounted $PLC_ROOT/data/fedora ; then
- mount -t none -o bind,ro /data/fedora $PLC_ROOT/data/fedora
- check
- fi
- if [ -d /svn ] ; then
- if ! mounted $PLC_ROOT/svn ; then
- mount -t none -o bind,ro /svn $PLC_ROOT/svn
- check
- fi
- fi
- if ! mounted $PLC_ROOT/proc ; then
- mount -t proc none $PLC_ROOT/proc
- check
- fi
-
- [ $ERRORS -eq 0 ] && success $"PLC unmount" || failure $"PLC unmount"
- echo
-
-}
-
-start ()
-{
- # Starting everything
- if [ -z "$1" ] ; then
- mount_plc
- fi
-
- chroot $PLC_ROOT /sbin/service plc $PLC_OPTIONS start $*
- check
-}
-
-umount_plc ()
-{
- echo -n $"Unmounting PLC: "
-
- for dir in $PLC_ROOT/proc $PLC_ROOT/data/fedora $PLC_ROOT/svn $PLC_ROOT/data $PLC_ROOT ; do
- if mounted $dir ; then
- umount $dir
- check
- fi
- done
-
- [ $ERRORS -eq 0 ] && success $"PLC unmount" || failure $"PLC unmount"
- echo
-}
-
-stop ()
-{
- if mounted $PLC_ROOT ; then
- chroot $PLC_ROOT /sbin/service plc $PLC_OPTIONS stop $*
- check
- fi
-
- # Stopped everything
- if [ -z "$1" ] ; then
- umount_plc
- fi
-}
-
-mountstatus_plc ()
-{
- for dir in $PLC_ROOT/proc $PLC_ROOT/data/fedora$PLC_ROOT/svn $PLC_ROOT/data $PLC_ROOT ; do
- if mounted $dir ; then
- echo $dir
- fi
- done
-}
-
-# Get command
-shift $(($OPTIND - 1))
-command=$1
-
-# Get step(s)
-shift 1
-
-case "$command" in
- start|stop)
- $command $*
- ;;
-
- restart)
- stop $*
- start $*
- ;;
-
- reload)
- chroot $PLC_ROOT /sbin/service plc $PLC_OPTIONS reload $*
- ;;
-
- mount|umount|mountstatus)
- ${command}_plc $*
- ;;
-
- *)
- echo "Usage: $0 {start|stop|restart|reload|mount|umount|mountstatus}"
- RETVAL=1
- ;;
-esac
-
-exit $ERRORS