[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: init-script startet nicht



Heiko Schlittermann wrote:

> Ben E. Hard <bve@gmx.de> (Mi 22 Apr 2009 14:32:46 CEST):
>> Thomas Fugmann wrote:
>> Hat jemand vielleicht noch einen Tipp, wie ich erreichen kann, dass die
>> Ausführung der init-skripte irgendwo in einem log auftaucht? Dann würde
>> ich vielleicht sehen, welche Fehlermeldung entsteht.
> 
> Kannst Du den Script mal veröffentlichen?

#! /bin/sh
### BEGIN INIT INFO
# Provides:          tp-fancontrol
# Required-Start:    -
# Required-Stop:     -
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts the tp-fancontrol script as a daemon
# Description:       This init script starts the tp-fancontrol script as
#                    a daemon to control the fan speed of an IBM 
#                    Thinkpad. You have to modprobe "ibm_acpi" for work
#                    with Kernels newer or equel then 2.6.19 or
#                    modprobed it with "experimental=1"
### END INIT INFO

# Author: Simon Effenberg <savar@schuldeigen.de>
# 
# This init script is based on the script by 
# Ronald Aigner <ra3@os.inf.tu-dresden.de>
#
# Do NOT "set -e"
/bin/cp /dev/null /tmp/fan_ran
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Thinkpad Fan Control"
NAME=tp-fancontrol
DAEMON=/usr/local/bin/$NAME
DAEMON_ARGS="-d"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/${NAME}.conf ] && . /etc/${NAME}.conf

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
        # Return
        #   0 if daemon has been started
        #   1 if daemon was already running
        #   2 if daemon could not be started
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON 
--test > /dev/null \
                || return 1

        # building DAEMON_ARGS
        [ ${LOG_SYSLOG:-1} = "1" ] && DAEMON_ARGS="${DAEMON_ARGS} -l"
        [ ${QUIET:-1} = "1" ] && DAEMON_ARGS="${DAEMON_ARGS} -q"
        [ ${TEMP_SHIFT:-0} != "0" ] && DAEMON_ARGS="${DAEMON_ARGS} -s 
${TEMP_SHIFT}"

        start-stop-daemon --start --quiet --nicelevel -10 --pidfile $PIDFILE 
--exec $DAEMON -- \
                $DAEMON_ARGS \
                || return 2
}

#
# Function that stops the daemon/service
#
do_stop()
{
        # Return
        #   0 if daemon has been stopped
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile 
$PIDFILE --name $NAME
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        # Wait for children to finish too if this is a daemon that forks
        # and if the daemon is only ever run from this initscript.
        # If the above conditions are not satisfied then add some other code
        # that waits for the process to drop all resources that could be
        # needed by services started subsequently.  A last resort is to
        # sleep for some time.
        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec 
$DAEMON
        [ "$?" = 2 ] && return 2
        # Many daemons don't delete their pidfiles when they exit.
        rm -f $PIDFILE
        return "$RETVAL"
}

#
# Function that stop/sart the daemon/service
#
do_reload() {
        do_stop
        do_start
        return 0
}

case "$1" in
  start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
  restart|force-reload)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
                do_start
                case "$?" in
                        0) log_end_msg 0 ;;
                        1) log_end_msg 1 ;; # Old process is still running
                        *) log_end_msg 1 ;; # Failed to start
                esac
                ;;
          *)
                # Failed to stop
                log_end_msg 1
                ;;
        esac
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 3
        ;;
esac

:


> Die Sprachumgebung wird auch gerne genommen als Fehlerquelle.
> 
>     Z.B.
>         LC_ALL=C ifconfig | grep addr
>     vs.
>         LC_ALL=de_DE.UTF-8 ifconfig | grep addr

Kein LC_[XX] im Skript vorhanden. 

Gruß
Ben


Reply to: