1*4882a593Smuzhiyun#! /bin/sh 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun### BEGIN INIT INFO 4*4882a593Smuzhiyun# Provides: openhpid 5*4882a593Smuzhiyun# Required-Start: $network $remote_fs $syslog 6*4882a593Smuzhiyun# Required-Stop: $network $remote_fs $syslog 7*4882a593Smuzhiyun# Should-Start: $named 8*4882a593Smuzhiyun# Should-Stop: $named 9*4882a593Smuzhiyun# Default-Start: 2 3 4 5 10*4882a593Smuzhiyun# Default-Stop: 0 1 6 11*4882a593Smuzhiyun# Short-Description: Start OpenHPI daemon at boot time 12*4882a593Smuzhiyun# Description: Enable OpenHPI service which is provided by openhpid. 13*4882a593Smuzhiyun### END INIT INFO 14*4882a593Smuzhiyun# 15*4882a593Smuzhiyun# openhpid.sh Start/Stop the openhpi daemon. 16*4882a593Smuzhiyun# 17*4882a593Smuzhiyun# description: openhpid is standard UNIX program which uses the OpenHPI \ 18*4882a593Smuzhiyun# APIs and provides a standard internet server to access those \ 19*4882a593Smuzhiyun# APIs for client programs. 20*4882a593Smuzhiyun# processname: openhpid 21*4882a593Smuzhiyun# config: the standard openhpi conf file specified on the command line or the env. 22*4882a593Smuzhiyun# pidfile: /var/run/openhpid.pid 23*4882a593Smuzhiyun# 24*4882a593Smuzhiyun# Author(s): 25*4882a593Smuzhiyun# W. David Ashley <dashley@us.ibm.com> 26*4882a593Smuzhiyun# Daniel de Araujo <ddearauj@us.ibm.com> 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun# Source function library. 29*4882a593SmuzhiyunPATH=/sbin:/bin:/usr/sbin:/usr/bin 30*4882a593Smuzhiyunprog="OpenHPI" 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun# If the openhpid executable is not available, we can't do any of this 33*4882a593Smuzhiyuntest -f /usr/sbin/openhpid || exit 0 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun# Determine whether the lsb package is installed 36*4882a593Smuzhiyun# If it is, determine which lsb is installed: 37*4882a593Smuzhiyun# redhat, suse, or standard lsb 38*4882a593Smuzhiyun 39*4882a593Smuzhiyunif test -f /etc/init.d/functions 40*4882a593Smuzhiyunthen 41*4882a593Smuzhiyun lsbtype="rh" 42*4882a593Smuzhiyun . /etc/init.d/functions 43*4882a593Smuzhiyunelif test -f /etc/rc.status 44*4882a593Smuzhiyunthen 45*4882a593Smuzhiyun lsbtype="suse" 46*4882a593Smuzhiyun . /etc/rc.status 47*4882a593Smuzhiyunelif test -f /lib/lsb/init-functions 48*4882a593Smuzhiyunthen 49*4882a593Smuzhiyun lsbtype="lsb" 50*4882a593Smuzhiyun . /lib/lsb/init-functions 51*4882a593Smuzhiyunelif test -f /etc/gentoo-release 52*4882a593Smuzhiyunthen 53*4882a593Smuzhiyun lsbtype="gentoo" 54*4882a593Smuzhiyun . /sbin/functions.sh 55*4882a593Smuzhiyunelse 56*4882a593Smuzhiyun lsbtype="nolsb" 57*4882a593Smuzhiyunfi 58*4882a593Smuzhiyun 59*4882a593Smuzhiyunprint_outcome() 60*4882a593Smuzhiyun{ 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun case "${lsbtype}" in 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun suse) 65*4882a593Smuzhiyun rc_status -v 66*4882a593Smuzhiyun ;; 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun lsb) 69*4882a593Smuzhiyun if test "$?" -eq 0 70*4882a593Smuzhiyun then 71*4882a593Smuzhiyun log_success_msg "success" 72*4882a593Smuzhiyun else 73*4882a593Smuzhiyun log_failure_msg "failed" 74*4882a593Smuzhiyun fi 75*4882a593Smuzhiyun ;; 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun gentoo) 78*4882a593Smuzhiyun eend $? 79*4882a593Smuzhiyun ;; 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun nolsb | rh) 82*4882a593Smuzhiyun if test "$?" -eq 0 83*4882a593Smuzhiyun then 84*4882a593Smuzhiyun echo " ... success" 85*4882a593Smuzhiyun fi 86*4882a593Smuzhiyun if test "$?" -ne 0 87*4882a593Smuzhiyun then 88*4882a593Smuzhiyun echo " ... failed" 89*4882a593Smuzhiyun fi 90*4882a593Smuzhiyun ;; 91*4882a593Smuzhiyun esac 92*4882a593Smuzhiyun} 93*4882a593Smuzhiyun 94*4882a593Smuzhiyunstart() { 95*4882a593Smuzhiyun case "${lsbtype}" in 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun suse) 98*4882a593Smuzhiyun echo -n "Starting $prog: " 99*4882a593Smuzhiyun startproc /usr/sbin/openhpid -c /etc/openhpi/openhpi.conf 100*4882a593Smuzhiyun RETVAL=$? 101*4882a593Smuzhiyun ;; 102*4882a593Smuzhiyun lsb) 103*4882a593Smuzhiyun echo -n "Starting $prog: " 104*4882a593Smuzhiyun start_daemon /usr/sbin/openhpid -c /etc/openhpi/openhpi.conf 105*4882a593Smuzhiyun RETVAL=$? 106*4882a593Smuzhiyun ;; 107*4882a593Smuzhiyun gentoo | rh) 108*4882a593Smuzhiyun echo "Starting $prog: " 109*4882a593Smuzhiyun start-stop-daemon --start --quiet --exec /usr/sbin/openhpid -- -c /etc/openhpi/openhpi.conf 110*4882a593Smuzhiyun RETVAL=$? 111*4882a593Smuzhiyun ;; 112*4882a593Smuzhiyun nolsb) 113*4882a593Smuzhiyun echo -n "Starting $prog: " 114*4882a593Smuzhiyun /usr/sbin/openhpid -c /etc/openhpi/openhpi.conf 115*4882a593Smuzhiyun RETVAL=$? 116*4882a593Smuzhiyun ;; 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun esac 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun print_outcome 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun} 123*4882a593Smuzhiyun 124*4882a593Smuzhiyunstop() { 125*4882a593Smuzhiyun case "${lsbtype}" in 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun lsb | suse) 128*4882a593Smuzhiyun echo -n "Stopping $prog: " 129*4882a593Smuzhiyun killproc /usr/sbin/openhpid 130*4882a593Smuzhiyun RETVAL=$? 131*4882a593Smuzhiyun ;; 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun gentoo) 134*4882a593Smuzhiyun echo "Stopping $prog: " 135*4882a593Smuzhiyun start-stop-daemon --stop --quiet --exec /usr/sbin/openhpid 136*4882a593Smuzhiyun RETVAL=$? 137*4882a593Smuzhiyun ;; 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun nolsb | rh) 140*4882a593Smuzhiyun echo -n "Stopping $prog: " 141*4882a593Smuzhiyun if test -f /var/run/openhpid.pid && test "`cat /var/run/openhpid.pid`" != "" 142*4882a593Smuzhiyun then 143*4882a593Smuzhiyun kill "`cat /var/run/openhpid.pid`" 144*4882a593Smuzhiyun RETVAL=$? 145*4882a593Smuzhiyun else 146*4882a593Smuzhiyun RETVAL=0 147*4882a593Smuzhiyun fi 148*4882a593Smuzhiyun ;; 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun esac 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun print_outcome 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun if test "$RETVAL" -eq 0 && test -f /var/run/openhpid.pid 155*4882a593Smuzhiyun then 156*4882a593Smuzhiyun rm -f /var/lock/openhpid 157*4882a593Smuzhiyun rm -f /var/run/openhpid.pid 158*4882a593Smuzhiyun fi 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun} 161*4882a593Smuzhiyun 162*4882a593Smuzhiyundstatus() { 163*4882a593Smuzhiyun echo "Checking for $prog daemon: " 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun case "${lsbtype}" in 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun suse) 168*4882a593Smuzhiyun checkproc /usr/sbin/openhpid 169*4882a593Smuzhiyun rc_status -v 170*4882a593Smuzhiyun ;; 171*4882a593Smuzhiyun lsb) 172*4882a593Smuzhiyun pid="`pidofproc /usr/sbin/openhpid`" 173*4882a593Smuzhiyun if test "${pid}" != "" 174*4882a593Smuzhiyun then 175*4882a593Smuzhiyun log_success_msg "$prog is running" 176*4882a593Smuzhiyun else 177*4882a593Smuzhiyun log_success_msg "$prog is not running" 178*4882a593Smuzhiyun fi 179*4882a593Smuzhiyun ;; 180*4882a593Smuzhiyun gentoo | nolsb | rh) 181*4882a593Smuzhiyun if test -f /var/run/openhpid.pid && 182*4882a593Smuzhiyun test "`cat /var/run/openhpid.pid`" != "" && 183*4882a593Smuzhiyun kill -s 0 "`cat /var/run/openhpid.pid`" 184*4882a593Smuzhiyun then 185*4882a593Smuzhiyun echo "$prog is running" 186*4882a593Smuzhiyun else 187*4882a593Smuzhiyun echo "$prog is not running" 188*4882a593Smuzhiyun fi 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun ;; 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun esac 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun} 197*4882a593Smuzhiyun 198*4882a593Smuzhiyunrestart() { 199*4882a593Smuzhiyun stop 200*4882a593Smuzhiyun start 201*4882a593Smuzhiyun} 202*4882a593Smuzhiyun 203*4882a593Smuzhiyunforce_reload() { 204*4882a593Smuzhiyun # We don't currently support a reload, but can do a restart 205*4882a593Smuzhiyun stop 206*4882a593Smuzhiyun start 207*4882a593Smuzhiyun} 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun# See how we were called. 210*4882a593Smuzhiyun 211*4882a593Smuzhiyuncase "$1" in 212*4882a593Smuzhiyun start) 213*4882a593Smuzhiyun start 214*4882a593Smuzhiyun ;; 215*4882a593Smuzhiyun stop) 216*4882a593Smuzhiyun stop 217*4882a593Smuzhiyun ;; 218*4882a593Smuzhiyun restart) 219*4882a593Smuzhiyun restart 220*4882a593Smuzhiyun ;; 221*4882a593Smuzhiyun status) 222*4882a593Smuzhiyun dstatus 223*4882a593Smuzhiyun ;; 224*4882a593Smuzhiyun force-reload) 225*4882a593Smuzhiyun force_reload 226*4882a593Smuzhiyun ;; 227*4882a593Smuzhiyun *) 228*4882a593Smuzhiyun echo "Usage: $0 {start|stop|restart|status|force-reload}" 229*4882a593Smuzhiyun exit 1 230*4882a593Smuzhiyunesac 231