-
Notifications
You must be signed in to change notification settings - Fork 263
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add LSB style init script to build system
This patch adds an LSB style init script to the build system. It also installs it within the created RPM file. Signed-off-by: Steven Dake <sdake@redhat.com> Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
- Loading branch information
Showing
4 changed files
with
171 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,31 @@ | ||
MAINTAINERCLEANFILES = Makefile.in | ||
|
||
EXTRA_DIST = generic.in | ||
|
||
noinst_HEADERS = bash_completion_collie checkarch.sh check-dog.pl start-sheepdog stop-sheepdog vditest | ||
|
||
target_INIT = generic | ||
|
||
%: %.in Makefile | ||
rm -f $@-t $@ | ||
sed \ | ||
-e 's#@''SBINDIR@#$(sbindir)#g' \ | ||
-e 's#@''SYSCONFDIR@#$(sysconfdir)#g' \ | ||
-e 's#@''INITDDIR@#$(INITDDIR)#g' \ | ||
-e 's#@''LOCALSTATEDIR@#$(localstatedir)#g' \ | ||
$< > $@-t | ||
chmod 0755 $@-t | ||
mv $@-t $@ | ||
|
||
all-local: $(target_INIT) | ||
|
||
clean-local: | ||
rm -rf $(target_INIT) | ||
|
||
install-exec-local: | ||
$(INSTALL) -d $(DESTDIR)/$(INITDDIR) | ||
$(INSTALL) -m 755 generic $(DESTDIR)/$(INITDDIR)/sheepdog | ||
|
||
uninstall-local: | ||
cd $(DESTDIR)/$(INITDDIR) && \ | ||
rm -f sheepdog |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
#!/bin/bash | ||
# chkconfig: - 21 21 | ||
# description: Sheepdog | ||
# processname: sheep | ||
# | ||
### BEGIN INIT INFO | ||
# Provides: sheepdog | ||
# Required-Start: $network | ||
# Should-Start: $syslog | ||
# Required-Stop: $network | ||
# Default-Start: | ||
# Default-Stop: | ||
# Short-Description: Starts and stops Sheepdog. | ||
# Description: Starts and stops Sheepdog. | ||
### END INIT INFO | ||
desc="Sheepdog QEMU/KVM Block Storage" | ||
prog="sheep" | ||
|
||
# set secure PATH | ||
PATH="/sbin:/bin:/usr/sbin:/usr/bin:@SBINDIR@" | ||
SHEEPDOGD=@SBINDIR@/sheep | ||
|
||
success() | ||
{ | ||
echo -ne "[ OK ]\r" | ||
} | ||
|
||
failure() | ||
{ | ||
echo -ne "[FAILED]\r" | ||
} | ||
|
||
status() | ||
{ | ||
pid=$(pidof $1 2>/dev/null) | ||
rtrn=$? | ||
if [ $rtrn -ne 0 ]; then | ||
echo "$1 is stopped" | ||
else | ||
echo "$1 (pid $pid) is running..." | ||
fi | ||
return $rtrn | ||
} | ||
|
||
# rpm based distros | ||
if [ -d @SYSCONFDIR@/sysconfig ]; then | ||
[ -f @INITDDIR@/functions ] && . @INITDDIR@/functions | ||
[ -f @SYSCONFDIR@/sysconfig/$prog ] && . @SYSCONFDIR@/sysconfig/$prog | ||
[ -z "$LOCK_FILE" ] && LOCK_FILE="@LOCALSTATEDIR@/lock/subsys/$prog" | ||
fi | ||
|
||
# deb based distros | ||
if [ -d @SYSCONFDIR@/default ]; then | ||
[ -f @SYSCONFDIR@/default/$prog ] && . @SYSCONFDIR@/default/$prog | ||
[ -z "$LOCK_FILE" ] && LOCK_FILE="@LOCALSTATEDIR@/lock/$prog" | ||
fi | ||
|
||
# The version of __pids_pidof in /etc/init.d/functions calls pidof with -x | ||
# This means it matches scripts, including this one. | ||
# Redefine it here so that status (from the same file) works. | ||
# Otherwise simultaneous calls to stop() will loop forever | ||
__pids_pidof() { | ||
pidof -c -o $$ -o $PPID -o %PPID "$1" || \ | ||
pidof -c -o $$ -o $PPID -o %PPID "${1##*/}" | ||
} | ||
|
||
start() | ||
{ | ||
echo -n "Starting $desc ($prog): " | ||
|
||
# most recent distributions use tmpfs for @LOCALSTATEDIR@/run | ||
# to avoid to clean it up on every boot. | ||
# they also assume that init scripts will create | ||
# required subdirectories for proper operations | ||
mkdir -p @LOCALSTATEDIR@/run | ||
|
||
if status $prog > /dev/null 2>&1; then | ||
success | ||
else | ||
$prog -p 7000 @LOCALSTATEDIR@/lib/sheepdog > /dev/null 2>&1 | ||
|
||
# give it time to fail | ||
sleep 2 | ||
if status $prog > /dev/null 2>&1; then | ||
touch $LOCK_FILE | ||
success | ||
else | ||
failure | ||
rtrn=1 | ||
fi | ||
fi | ||
echo | ||
} | ||
|
||
stop() | ||
{ | ||
! status $prog > /dev/null 2>&1 && return | ||
|
||
echo -n "Stopping $desc ($prog): " | ||
killproc $prog | ||
RETVAL=$? | ||
rm -f $LOCK_FILE | ||
success | ||
echo | ||
} | ||
|
||
restart() | ||
{ | ||
stop | ||
start | ||
} | ||
|
||
rtrn=0 | ||
|
||
case "$1" in | ||
start) | ||
start | ||
;; | ||
restart|reload|force-reload) | ||
restart | ||
;; | ||
condrestart|try-restart) | ||
if status $prog > /dev/null 2>&1; then | ||
restart | ||
fi | ||
;; | ||
status) | ||
status $prog | ||
rtrn=$? | ||
;; | ||
stop) | ||
stop | ||
;; | ||
*) | ||
echo "usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status}" | ||
rtrn=2 | ||
;; | ||
esac | ||
|
||
|
||
exit $rtrn |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters