On Mon, Apr 13, 2009 at 05:38:18PM +0200, Guido Günther wrote:
> On Sun, Apr 12, 2009 at 01:46:31PM -0700, Chip Salzenberg wrote:
> > On Sun, Apr 12, 2009 at 09:31:25PM +0200, Guido Günther wrote:
> > > On Sat, Apr 11, 2009 at 07:52:18PM -0700, Chip Salzenberg wrote:
> > > > Package: libvirt-bin
> > > > Version: 0.6.2-1
> > > > Severity: important
> > > > 
> > > > '/etc/init.d/libvirt-bin start' actually works but exits with non-zero 
> > > > status.
> > > > The output looks odd, as well: it prints both "OK" *and* "fail":
> > > > 
> > > > # /etc/init.d/libvirt-bin start
> > > >  * Starting libvirt management daemon libvirtd                          
> > > >  [ OK ] 
> > > >                                                                         
> > > >  [fail]
> > > > 
> > > > that's how it looks
> > > Please do some dash -x debugging. It looks sane here:
> > > 
> > > $ sudo /etc/init.d/libvirt-bin start
> > > Starting libvirt management daemon: libvirtd.
> > > $ echo $?
> > > 0
> > 
> > Here you go.  Looks like something wrong with splashy integration.
> Seems as log_end_msg 0 doesn't return 0 and we end up calling
> log_end_msg 1 therefore. Does the attached version do any better? If so
> it's a problem with the splashy integration.

No change.  Can you help with filing the splashy bug?  I don't understand
what's not working.


> Cheers,
>  -- Guido

> #! /bin/sh
> #
> # Init skript for libvirtd
> #
> # (c) 2007 Guido Guenther <a...@sigxcpu.org>
> # based on the skeletons that comes with dh_make
> #
> ### BEGIN INIT INFO
> # Provides:          libvirtd
> # Required-Start:    $network $local_fs
> # Required-Stop:     
> # Should-Start:      hal
> # Default-Start:     2 3 4 5
> # Default-Stop:      0 1 6
> # Short-Description: libvirt management daemon
> ### END INIT INFO
> 
> PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
> DAEMON=/usr/sbin/libvirtd
> NAME=libvirtd
> DESC="libvirt management daemon"
> 
> test -x $DAEMON || exit 0
> . /lib/lsb/init-functions
> 
> PIDFILE=/var/run/$NAME.pid
> DODTIME=1                   # Time to wait for the server to die, in seconds
> 
> # Include libvirtd defaults if available
> if [ -f /etc/default/libvirt-bin ] ; then
>       . /etc/default/libvirt-bin
> fi
> 
> set -e
> 
> check_start_libvirtd_option() {
>   if [ ! "$start_libvirtd" = "yes" ]; then
>     log_warning_msg "Not starting libvirt management daemon libvirtd, 
> disabled via /etc/default/libvirt-bin"
>     return 1
>   else
>     return 0
>   fi
> }
> 
> running_pid()
> {
>     # Check if a given process pid's cmdline matches a given name
>     pid=$1
>     name=$2
>     [ -z "$pid" ] && return 1 
>     [ ! -d /proc/$pid ] &&  return 1
>     cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1 |cut -d : -f 1`
>     # Is this the expected child?
>     [ "$cmd" != "$name" ] &&  return 1
>     return 0
> }
> 
> running()
> {
> # Check if the process is running looking at /proc
> # (works for all users)
>     # No pidfile, probably no daemon present
>     [ ! -f "$PIDFILE" ] && return 1
>     # Obtain the pid and check it against the binary name
>     pid=`cat $PIDFILE`
>     running_pid $pid $DAEMON || return 1
>     return 0
> }
> 
> force_stop() {
> # Forcefully kill the process
>     [ ! -f "$PIDFILE" ] && return
>     if running ; then
>         kill -15 $pid
>         # Is it really dead?
>         [ -n "$DODTIME" ] && sleep "$DODTIME"s
>         if running ; then
>             kill -9 $pid
>             [ -n "$DODTIME" ] && sleep "$DODTIME"s
>             if running ; then
>                 echo "Cannot kill $LABEL (pid=$pid)!"
>                 exit 1
>             fi
>         fi
>     fi
>     rm -f $PIDFILE
>     return 0
> }
> 
> mkdir -p /var/run/libvirt
> case "$1" in
>   start)
>       if check_start_libvirtd_option; then
>               log_daemon_msg "Starting $DESC" "$NAME"
>               if running ;  then
>                       log_progress_msg "already running"
>                       log_end_msg 0
>                       exit 0
>               fi
>               rm -f /var/run/libvirtd.pid
>               start-stop-daemon --start --quiet --pidfile $PIDFILE \
>                       --exec $DAEMON -- $libvirtd_opts
>               if running; then
>                       log_end_msg 0
>               else
>                       log_end_msg 1
>               fi
>       fi
>       ;;
>   stop)
>       log_daemon_msg "Stopping $DESC" "$NAME"
>               if ! running ;  then
>               log_progress_msg "not running"
>               log_end_msg 0
>               exit 0
>               fi
>       start-stop-daemon --stop --quiet --pidfile $PIDFILE \
>               --exec $DAEMON
>       log_end_msg 0
>       ;;
>   force-stop)
>       log_daemon_msg "Forcefully stopping $DESC" "$NAME"
>         force_stop
>         ! running && log_end_msg 0 || log_end_msg 1
>       ;;
>   restart)
>       if check_start_libvirtd_option; then
>               log_daemon_msg "Restarting $DESC" "$DAEMON"
>               start-stop-daemon --oknodo --stop --quiet --pidfile \
>                       /var/run/$NAME.pid --exec $DAEMON
>               [ -n "$DODTIME" ] && sleep $DODTIME
>               start-stop-daemon --start --quiet --pidfile \
>                       /var/run/$NAME.pid --exec $DAEMON -- $libvirtd_opts
>               running && log_end_msg 0 || log_end_msg 1
>       fi
>       ;;
>   reload|force-reload)
>       if running; then
>             log_daemon_msg "Reloading configuration of $DESC" "$NAME"
>           start-stop-daemon --stop --signal 1 --quiet --pidfile \
>                    /var/run/$NAME.pid --exec $DAEMON
>           log_end_msg 0
>       else
>             log_warning_msg "libvirtd not running, doing nothing."
>       fi
>       ;;
>   status)
>         log_daemon_msg "Checking status of $DESC" "$NAME"
>         if running ;  then
>             log_progress_msg "running"
>             log_end_msg 0
>         else
>             log_progress_msg "not running"
>             log_end_msg 1
>       fi
>     ;;
>   *)
>       N=/etc/init.d/libvirt-bin
>       echo "Usage: $N 
> {start|stop|restart|reload|force-reload|status|force-stop}" >&2
>       exit 1
>       ;;
> esac
> 
> exit 0


-- 
Chip Salzenberg



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to