#!/bin/bash # Start the IWPMD daemon # # chkconfig: 1235 90 15 # description: iWarp Port Mapper Daemon for opening sockets to reserve ports from userspace # processname: iwpmd # pidfile: /var/run/iwpmd.pid # ### BEGIN INIT INFO # Provides: iwpmd # Required-Start: $network $syslog $remote_fs # Required-Stop: $remote_fs # Default-Stop: 0 1 6 # Default-Start: 2 3 4 5 # Short-Description: iWarp Port Mapper Daemon # Description: iWarp Port Mapper Daemon for opening sockets to claim TCP ports from userspace ### END INIT INFO IWPMD_BIN="@CMAKE_INSTALL_FULL_SBINDIR@/iwpmd" LOCK="/var/lock/subsys/iwpmd" IWPMD_PID=0 RETVAL=0 # Source function library. if [ -f "/etc/redhat-release" ]; then . /etc/rc.d/init.d/functions STARTD=daemon STOPD=killproc STATUSD=status GETPID=/sbin/pidof else # Debian / openSUSE / Ubuntu . /lib/lsb/init-functions STARTD=start_daemon STOPD=killproc STATUSD=/sbin/checkproc GETPID=pidofproc fi check() { # Check if iwpm is executable test -x $IWPMD_BIN || ( echo "Couldn't find $IWPMD_BIN"; exit 5 ) } start() { check RETVAL=$? [ $RETVAL -gt 0 ] && exit $RETVAL echo -n $"Starting iwpm daemon: " if [ ! -f "$LOCK" ]; then ulimit -n 102400 $STARTD $IWPMD_BIN &> /dev/null RETVAL=$? [ $RETVAL -eq 0 ] && ( touch $LOCK; echo "OK" ) || echo "NO" else echo "NO (iwpm is already running)" fi return $RETVAL } stop() { check RETVAL=$? [ $RETVAL -gt 0 ] && exit $RETVAL echo -n $"Stopping iwpm daemon: " if [ -f "$LOCK" ]; then $STOPD $IWPMD_BIN &> /dev/null RETVAL=$? [ $RETVAL -eq 0 ] && ( rm -f $LOCK; echo "OK" ) || echo "NO" else echo "NO (iwpm is already stopped)" fi return $RETVAL } restart() { stop start } show_status() { check RETVAL=$? [ $RETVAL -gt 0 ] && exit $RETVAL IWPMD_PID="$($GETPID $IWPMD_BIN)" $STATUSD $IWPMD_BIN &> /dev/null RETVAL=$? [ $RETVAL -eq 0 ] && echo "iwpm daemon (pid $IWPMD_PID) is running" || echo "iwpm daemon isn't available" return $RETVAL } case "$1" in start) start ;; stop) stop ;; restart) restart ;; force-reload) restart ;; status) show_status ;; *) echo $"Usage: $0 {start|stop|restart|force-reload|status}" RETVAL=2 esac exit $RETVAL