Originally Posted by
dudinatrix
Ahh bummer. What happens in breezy, nothing? Seems strange, I wouldn't think init-functions be so different that it would break.
The init functions in Breazy have been rewriten for use with usplash. Here is the init-functions in Breezy
Code:
# /lib/lsb/init-functions for Debian -*- shell-script -*-
#
#Copyright (c) 2002-03 Chris Lawrence
#All rights reserved.
#
#Redistribution and use in source and binary forms, with or without
#modification, are permitted provided that the following conditions
#are met:
#1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#3. Neither the name of the author nor the names of other contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
#THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
#ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
#IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
#ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
#FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
#DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
#OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
#HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
#LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
#OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
#SUCH DAMAGE.
start_daemon () {
local force nice pidfile exec
set -- `POSIXLY_CORRECT=1 getopt "fn:p:" $*`
force=0
nice=0
pidfile=/dev/null
for i in $*; do
case $i in
-f) force=1; shift;;
-n) nice=$2; shift 2;;
-p) pidfile=$2; shift 2;;
--) shift; break;;
esac
done
exec=$1; shift
if [ $force = 1 ]; then
/sbin/start-stop-daemon --start --nicelevel $nice --quiet --startas $exec --pidfile /dev/null --oknodo -- $*
elif [ $pidfile ]; then
/sbin/start-stop-daemon --start --nicelevel $nice --quiet --exec $exec --oknodo --pidfile "$pidfile" -- $*
else
/sbin/start-stop-daemon --start --nicelevel $nice --quiet --exec $exec --oknodo -- $*
fi
}
pidofproc () {
local pidfile line i pids= status
set -- `POSIXLY_CORRECT=1 getopt "p:" $*`
pidfile=
for i in $*; do
case $i in
-p) pidfile=$2; shift 2;;
--) shift; break;;
esac
done
if [ -z "$pidfile" ]; then
pidfile=/var/run/$(basename "$1").pid
fi
if [ -f "$pidfile" ]; then
read -d "" line < "$pidfile"
for i in $line; do
if [ -z "$(echo $p | sed 's/[0-9]//g')" -a -d "/proc/$i" ]; then
pids="$i $pids"
fi
done
if [ -n "$pids" ]; then
echo "$pids"
return 0
else
return 2 # program is dead and /var/run pid file exists
fi
elif [ -x /bin/pidof ]; then
/bin/pidof -o %PPID $1
status="$?"
[ "$status" = 1 ] && return 3 # program is not running
return 0
else
return 4 # program or service is unknown
fi
}
# start-stop-daemon uses the same algorithm as "pidofproc" above.
killproc () {
local pidfile sig status
set -- `POSIXLY_CORRECT=1 getopt "p:" $*`
pidfile=
for i in $*; do
case $i in
-p) pidfile=$2; shift 2;;
--) shift; break;;
esac
done
if [ ! $pidfile ]; then
pidfile=/var/run/$(basename "$1").pid
fi
if [ $2 ]; then
sig=$(echo $2 | sed -e 's/^-\(.*\)/\1/')
sig=$(echo $sig | sed -e 's/^SIG\(.*\)/\1/')
/sbin/start-stop-daemon --stop --pidfile "$pidfile" --signal $sig --quiet
status="$?"
[ "$status" = 1 ] && return 3 # program is not running
return 0
else
/sbin/start-stop-daemon --stop --pidfile "$pidfile" --retry 5 --quiet --oknodo
fi
}
log_success_msg () {
if type usplash_write >/dev/null 2>&1; then
usplash_write "STATUS $*" || true
fi
echo " * $@"
}
log_failure_msg () {
if type usplash_write >/dev/null 2>&1; then
usplash_write "STATUS $*" || true
fi
TPUT=/usr/bin/tput
if [ -x $TPUT ] && $TPUT hpa 60 >/dev/null 2>&1; then
RED=`$TPUT setaf 1`
NORMAL=`$TPUT op`
echo " $RED*$NORMAL $@"
else
echo " * $@"
fi
}
log_warning_msg () {
if type usplash_write >/dev/null 2>&1; then
usplash_write "STATUS $*" || true
fi
TPUT=/usr/bin/tput
if [ -x $TPUT ] && $TPUT hpa 60 >/dev/null 2>&1; then
YELLOW=`$TPUT setaf 3`
NORMAL=`$TPUT op`
echo " $YELLOW*$NORMAL $@"
else
echo " * $@"
fi
}
#
# NON-LSB HELPER FUNCTIONS
#
# int get_lsb_header_val (char *scriptpathname, char *key)
get_lsb_header_val () {
if [ ! -f "$1" ] || [ -z "$2" ]; then
return 1
fi
LSB_S="### BEGIN INIT INFO"
LSB_E="### END INIT INFO"
sed -n "/$LSB_S/,/$LSB_E/ s/# $2: \(.*\)/\1/p" $1
}
# int log_begin_message (char *message)
log_begin_msg () {
if [ -z "$1" ]; then
return 1
fi
if type usplash_write >/dev/null 2>&1; then
usplash_write "TEXT $*" || true
fi
# Only do the fancy stuff if we have an appropriate terminal
# and if /usr is already mounted
TPUT=/usr/bin/tput
EXPR=/usr/bin/expr
if [ -x $TPUT ] && [ -x $EXPR ] && \
$TPUT xenl >/dev/null 2>&1 && \
$TPUT hpa 60 >/dev/null 2>&1; then
COLS=`$TPUT cols`
if [ -n "$COLS" ]; then
COL=`$EXPR $COLS - 7`
else
COL=73
fi
# We leave the cursor `hanging' about-to-wrap
# (see terminfo(5) xenl, which is approximately right).
# That way if the script prints anything then we will
# be on the next line and not overwrite part of the message.
# Previous versions of this code attempted to colour-code
# the asterisk but this can't be done reliably because
# in practice init scripts sometimes print messages even
# when they succeed and we won't be able to reliably know
# where the colourful asterisk ought to go.
printf " * $* "
# Enough trailing spaces for ` [fail]' to fit in; if the
# message is too long it wraps here rather than later,
# which is what we want.
$TPUT hpa `$EXPR $COLS - 1`
printf ' '
else
echo " * $*"
COL=''
fi
}
# int log_end_message (int exitstatus)
log_end_msg () {
# If no arguments were passed, return
[ -z "$1" ] && return 1
if type usplash_write >/dev/null 2>&1; then
if [ $1 -eq 0 ]; then
usplash_write "SUCCESS ok" || true
else
usplash_write "FAILURE failed" || true
fi
fi
if [ "$COL" ]; then
printf "\r"
$TPUT hpa $COL
if [ $1 -eq 0 ]; then
echo "[ ok ]"
else
printf '['
$TPUT setaf 1 # red
printf fail
$TPUT op # normal
echo ']'
fi
else
if [ $1 -eq 0 ]; then
echo " ...done."
else
echo " ...fail!"
fi
fi
return $1
}
Bookmarks