#!/bin/sh
# rc.flexlm - Init.d start/stop script for the FlexLM License Manager
# Variables:
LM_DIR="/usr/local/matlab71/etc"
LM_BIN="lmgrd"
PROG_BIN="$LM_DIR/glnx86/$LM_BIN"
LICENSE_FILE="$LM_DIR/license.dat"
RUN_AS=flexlm
LOG_FILE="/var/log/flexlm.log"
PROG_ARGS="-c $LICENSE_FILE -l $LOG_FILE"
# Sleep time for restart.
SLEEP=1
start()
{
echo -n "Starting FlexLM License Manager ($LM_BIN): "
# already running?
PID=$(pidof -s $PROG_BIN)
if [ -z $PID ]; then
# Initialize log file (only owner gets rw permission).
touch $LOG_FILE
chmod 600 $LOG_FILE
chown $RUN_AS $LOG_FILE
# Start program.
su $RUN_AS -c "$PROG_BIN $PROG_ARGS"
RETVAL=$?
if [ "$RETVAL" = "0" ]; then
echo "OK."
# Create lock file:
echo "$PID" >/var/run/flexlm.pid
else
echo "FAILED!"
fi
else
echo "already running (PID $PID)"
RETVAL=0
fi
return $RETVAL
}
stop()
{
echo -n "Stopping FlexLM License Manager ($LM_BIN): "
# running?
PID=$(pidof -s $PROG_BIN)
if [ -z $PID ]; then
echo "not running!"
RETVAL=0
else
kill $PID
RETVAL=$?
# Remove lock file.
if [ "$RETVAL" = "0" ]; then
echo "OK."
# Remove lock file:
rm -f /var/run/flexlm.pid
else
echo "FAILED!"
fi
fi
return $RETVAL
}