--- /dev/null
+#!/bin/sh
+#
+# pld-builder perform adminstrator's tasks for PLD Linux Builder
+#
+# chkconfig: 345 99 01
+#
+# description: perform adminstrator's tasks for PLD Linux Builder
+#
+# $Id$
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+# Defaults
+CHROOTS=
+
+# Get service config - may override defaults
+[ -f /etc/sysconfig/pld-builder ] && . /etc/sysconfig/pld-builder
+
+mount_chroots() {
+ # mount /proc in chroots
+ local ret
+ for CHROOT in $CHROOTS; do
+ show "chroot: %s mount /proc" "$CHROOT"
+ mount -t proc -o gid=17 none $CHROOT/proc
+ ret=$?
+ if [ $ret -eq 0 ]; then
+ ok
+ else
+ fail
+ RETVAL=$ret
+ fi
+ done
+}
+
+umount_chroots() {
+ local ret
+ for CHROOT in $CHROOTS; do
+ show "chroot: %s umount /proc" "$CHROOT"
+ umount $CHROOT/proc
+ [ $? -eq 0 ] && ok || fail
+ done
+}
+
+chroots_status() {
+ local ret
+ for CHROOT in $CHROOTS; do
+ show "chroot: %s is /proc mounted?" "$CHROOT"
+ test -f $CHROOT/proc/mounts
+ ret=$?
+ if [ $ret -eq 0 ]; then
+ ok
+ else
+ fail
+ RETVAL=$ret
+ fi
+ done
+}
+
+start() {
+ # Check if the service is already running?
+ if [ -f /var/lock/subsys/pld-builder ]; then
+ msg_already_running "PLD Linux Builder"
+ return
+ fi
+
+ if [ -z "$CHROOTS" ]; then
+ # no chroots configured. return and be silent
+ return
+ fi
+ msg_starting "PLD Linux Builder"
+ busy; echo
+ mount_chroots
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/pld-builder
+}
+
+stop() {
+ if [ ! -f /var/lock/subsys/pld-builder ]; then
+ msg_not_running "PLD Linux Builder"
+ return
+ fi
+
+ # Stop daemons.
+ msg_stopping "PLD Linux Builder"
+ busy; echo
+ umount_chroots
+ rm -f /var/lock/subsys/pld-builder >/dev/null 2>&1
+ RETVAL=0
+}
+
+condrestart() {
+ if [ ! -f /var/lock/subsys/pld-builder ]; then
+ msg_not_running "PLD Linux Builder"
+ RETVAL=$1
+ return
+ fi
+
+ stop
+ start
+}
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ try-restart)
+ condrestart 0
+ ;;
+ force-reload)
+ condrestart 7
+ ;;
+ status)
+ chroots_status
+ RETVAL=$?
+ ;;
+ *)
+ msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
+ exit 3
+ ;;
+esac
+exit $RETVAL