| #!/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 |