I would like to add an LSB-like (maybe not completely LSB compliant)
init script to Condor 7.0 before 7.0.1 comes out. Attached is a patch
against Condor 7.0 that contains the script. It is added as
src/condor_examples/condor.init with a slight modification to
src/condor_examples/Imakefile so it will be installed in etc/examples/.
This isn't really a "new feature" just a new example file. So I hope
it can be added to the 7.0 stable series instead of the 7.1
development series.
Thoughts?
Best,
matt
------------------------------------------------------------------------
diff --git a/src/condor_examples/Imakefile b/src/condor_examples/Imakefile
index 34c85cc..b7ced63 100644
--- a/src/condor_examples/Imakefile
+++ b/src/condor_examples/Imakefile
@@ -9,7 +9,8 @@ FILES = README condor_config.local.central.manager \
condor_vmgahp_config.xen \
condor_vmgahp_config.vmware \
lamscript \
- mp1script
+ mp1script \
+ condor.init
all::
diff --git a/src/condor_examples/condor.init b/src/condor_examples/condor.init
new file mode 100644
index 0000000..1d25a33
--- /dev/null
+++ b/src/condor_examples/condor.init
@@ -0,0 +1,174 @@
+#!/bin/bash
+#
+# condor This script allows for starting and stopping Condor.
+#
+# chkconfig: - 90 10
+# description: Condor is a high throughput computing batch processing
+# platform.
+# processname: condor_master
+# config: /etc/condor/condor_config
+# pidfile: /var/lib/condor/condor_master.pid
+
+### BEGIN INIT INFO
+# Provides: condor
+# Required-Start: $local_fs $network
+# Required-Stop: $local_fs $network
+# Short-Description: start and stop Condor
+# Description: Condor HTC computing platform
+### END INIT INFO
+
+# The program being managed
+prog=condor_master
+
+lockfile=/var/lock/subsys/$prog
+pidfile=/var/lib/condor/$prog.pid
+
+# Source function library
+. /etc/init.d/functions
+
+# Source networking configuration
+[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
+
+# Source Condor configuration
+[ -f /etc/sysconfig/condor ] && . /etc/sysconfig/condor
+
+# Check that networking is up
+[ "${NETWORKING}" = "no" ] && exit 1
+
+
+start() {
+ echo -n $"Starting Condor daemons: "
+ daemon --pidfile $pidfile --check $prog $prog -pidfile $pidfile
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && touch $lockfile
+ return $RETVAL
+}
+
+stop() {
+ echo -n $"Stopping Condor daemons: "
+ killproc -p $pidfile $prog
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && rm -f $lockfile
+ return $RETVAL
+}
+
+reload() {
+ echo -n $"Reloading Condor daemons: "
+ condor_reconfig # Always returns 0?
+ RETVAL=$?
+ echo
+ return $RETVAL
+}
+
+#
+# Determine if a process is running only by looking in a pidfile.
+# There is no use of pidof, which can find processes that are not
+# started by this script.
+#
+# ASSUMPTION: The pidfile will exist if the process does, see false
+# negative warning.
+#
+# WARNING: A false positive is possible if the process that dropped
+# the pid file has crashed and the pid has been recycled. A false
+# negative is possible if the process has not yet dropped the pidfile,
+# or it contains the incorrect pid.
+#
+# Usage: pid_status <pidfile> <lockfile>
+# Result: 0 = pid exists
+# 1 = pid does not exist, but pidfile does
+# 2 = pid does not exist, but lockfile does
+# 3 = pidfile does not exist, thus pid does not exist
+# 4 = status unknown
+#
+pid_status() {
+ if [ -f $1 ]; then
+ # this can fail if we're not privileged
+ pid=`cat $1` &>/dev/null
+ if [ $? -ne 0 -o -z "$pid" ]; then
+ return 4
+ fi
+
+ ps $pid &>/dev/null
+ if [ $? -ne 0 ]; then
+ if [ -e $2 ]; then
+ return 2
+ fi
+
+ return 1
+ fi
+
+ return 0
+ fi
+
+ return 3
+}
+
+
+pid_status $pidfile $lockfile
+running=$?
+
+if [ "$1" != "status" ]; then
+ # Report that $prog does not exist, or is not executable
+ if [ ! -x /usr/sbin/$prog ]; then
+ echo $"$0: error: program not installed"
+ exit 5
+ fi
+
+ [ $running -eq 4 ] && echo $"$0: error: insufficient privileges" && exit 7
+fi
+
+case "$1" in
+ start)
+ [ $running -eq 0 ] && exit 0
+ start
+ RETVAL=$?
+ ;;
+ stop)
+ [ $running -eq 0 ] || exit 0
+ stop
+ RETVAL=$?
+ ;;
+ restart)
+ [ $running -eq 0 ] && stop
+ start
+ RETVAL=$?
+ ;;
+ try-restart)
+ [ $running -eq 0 ] || exit 0
+ stop
+ start
+ RETVAL=$?
+ ;;
+ reload|force-reload)
+ if [ $running -ne 0 ]; then
+ echo $"$0: error: $prog is not running"
+ exit 7
+ fi
+ reload
+ RETVAL=$?
+ ;;
+ status)
+ if [ $running -ne 0 ]; then
+ case "$running" in
+ 1) echo $"$prog dead but pid file exists" ;;
+ 2) echo $"$prog dead but subsys locked" ;;
+ 3) echo $"$prog is stopped" ;;
+ 4) echo $"$prog status is unknown" ;;
+ esac
+
+ exit $running
+ fi
+
+ # WARNING: status uses pidof and may find more pids than it
+ # should.
+ status -p $pidfile $prog
+ RETVAL=$?
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|try-restart|reload|force-reload|status}"
+ RETVAL=2
+esac
+
+exit $RETVAL
------------------------------------------------------------------------
_______________________________________________
Condor-devel mailing list
Condor-devel@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/condor-devel