[Techtalk] killproc
Maria McKinley
maria at shadlen.org
Tue Jan 2 20:36:23 UTC 2007
Hi there,
I run debian, and I have a script I want to stick in /etc/init.d/, but
it calls the function killproc, which does not seem to be available in
the debian package system. Does anyone know how killproc works, and how
I can re-write the line using kill?
killproc $MATHLM_BINARY 15
This same script calls . /etc/init.d/functions, which looks like it is a
redhat thing, and commenting it out seems to have no ill effect.
Finally, this line:
[ ${NETWORKING} = "no" ] && exit 1
causes this error:
/etc/init.d/mathlm: line 24: [: =: unary operator expected
Any ideas on any of these issues? I've attached the script, in case that
makes life easier.
thanks,
maria
-------------- next part --------------
#!/bin/bash
#
# mathlm This shell script takes care of starting and stopping
# MathLM for Linux - Mathematica Network License Manager.
# Written by Charles Pooh and Onkar Singh (Wolfram Research)
#
# chkconfig: 2345 80 30
# description: MathLM is the Mathematica Network License Manager
# processname: mathlm
# config: /etc/mathlm.conf
# version: 1.0.0
# Source function library.
. /etc/init.d/functions
# Source networking configuration.
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 1
# Setting options
MATHLM_BINARY=/usr/sbin/mathlm
MATHLM_OPTIONS=''
RETVAL=0
[ -f /etc/mathlm.conf ] && . /etc/mathlm.conf
[ -n "$MATHLM_LANGUAGE" ] && MATHLM_OPTIONS="$MATHLM_OPTIONS -language $MATHLM_LANGUAGE"
[ -n "$MATHLM_LOCALTIME" ] && MATHLM_OPTIONS="$MATHLM_OPTIONS -localtime $MATHLM_LOCALTIME"
[ -n "$MATHLM_LOGFILE" ] && MATHLM_OPTIONS="$MATHLM_OPTIONS -logfile $MATHLM_LOGFILE"
[ -n "$MATHLM_LOGFORMAT" ] && MATHLM_OPTIONS="$MATHLM_OPTIONS -logformat $MATHLM_LOGFORMAT"
[ -n "$MATHLM_LOGLEVEL" ] && MATHLM_OPTIONS="$MATHLM_OPTIONS -loglevel $MATHLM_LOGLEVEL"
[ "$MATHLM_REMOTEMONITOR" = "NO" ] && MATHLM_OPTIONS="$MATHLM_OPTIONS -noremotemonitor"
[ -n "$MATHLM_PWFILE" ] && MATHLM_OPTIONS="$MATHLM_OPTIONS -pwfile $MATHLM_PWFILE"
[ -n "$MATHLM_RESTRICT" ] && MATHLM_OPTIONS="$MATHLM_OPTIONS -restrict $MATHLM_RESTRICT"
[ -n "$MATHLM_TIMEOUT" ] && MATHLM_OPTIONS="$MATHLM_OPTIONS -timeout $MATHLM_TIMEOUT"
[ -n "$MATHLM_TRFILE" ] && MATHLM_OPTIONS="$MATHLM_OPTIONS -trfile $MATHLM_TRFILE"
# Check mathlm binary
[ -x $MATHLM_BINARY ] || exit 2
# Start mathlm daemon
start() {
# Check if mathlm is already running
pid=`pidof -o $$ -o $PPID -o %PPID -x $MATHLM_BINARY`
if [ -n "$pid" ]; then
echo $"mathlm (pid $pid) is already running..."
return 3
fi
# Start mathlm
echo -n $"Starting mathlm: "
ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0} > /dev/null 2>&1
$MATHLM_BINARY $MATHLM_OPTIONS > /dev/null 2>&1
pid=`pidof -c -o $$ -o $PPID -o %PPID -x $MATHLM_BINARY`
checkpid $pid 2>&1
RETVAL=$?
[ $RETVAL -eq 0 ] && success $"MathLM startup" || failure $"MathLM startup"
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/mathlm
[ $RETVAL -eq 0 ] && logger $"MathLM: started mathlm successfully (pid = $pid, log file = $MATHLM_LOGFILE)." \
|| logger $"MathLM: mathlm failed to start (see log file = $MATHLM_LOGFILE)."
return $RETVAL
}
# Stop mathlm daemon
stop() {
echo -n $"Shutting down mathlm: "
killproc $MATHLM_BINARY 15
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/mathlm
[ $RETVAL -eq 0 ] && logger $"MathLM: mathlm stopped or is not running." \
|| logger $"MathLM: mathlm failed to stop."
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart|reload)
stop
start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/mathlm ]; then
stop
start
RETVAL=$?
fi
;;
status)
status $MATHLM_BINARY
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
exit $RETVAL
More information about the Techtalk
mailing list