xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-networking/recipes-daemons/openhpi/files/openhpi.init (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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