PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : hal-daemon will nicht starten



DaFishman
26.01.06, 21:08
Hi Leute,

Mein hal-daemon will seit einem update einfach nicht mehr starten. Selbst nach einem update, der dieses Problem beheben sollte, tuts nich.
Als System nutze ich FedoraCore 4 und hal wird über ein script gestartet:


#!/bin/sh
#
# haldaemon: HAL daemon
#
# chkconfig: 345 98 02
# description: This is a daemon for collecting and maintaing information \
# about hardware from several sources. \
# See http://www.freedesktop.org/Software/hal
#
# processname: hald
# pidfile: /var/run/haldaemon.pid
#

# Sanity checks.
[ -x /usr/sbin/hald ] || exit 0

# Source function library.
. /etc/rc.d/init.d/functions

# so we can rearrange this easily
processname=hald
servicename=haldaemon

RETVAL=0

start() {
echo -n $"Starting HAL daemon: "
daemon --check $servicename $processname --retain-privileges --use-syslog --daemon=no
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename
}

stop() {
echo -n $"Stopping HAL daemon: "

killproc $servicename -TERM
RETVAL=$?
echo
if [ $RETVAL -eq 0 ]; then
rm -f /var/lock/subsys/$servicename
rm -f /var/run/haldaemon.pid
fi
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $processname
RETVAL=$?
;;
restart)
stop
sleep 3
start
;;
condrestart)
if [ -f /var/lock/subsys/$servicename ]; then
stop
sleep 3
start
fi
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
;;
esac
exit $RETVAL


allerdings bekomm ich da einen Speicherzugriffsfehler:


Speicherzugriffsfehler $nice $*

der entsprechende Abschnitt in /etc/rc.d/init.d/functions, der diesen Fehler verursacht:


# A function to start a program.
daemon() {
# Test syntax.
local gotbase= force=
local base= user= nice= bg= pid=
nicelevel=0
while [ "$1" != "${1##[-+]}" ]; do
case $1 in
'') echo $"$0: Usage: daemon [+/-nicelevel] {program}"
return 1;;
--check)
base=$2
gotbase="yes"
shift 2
;;
--check=?*)
base=${1#--check=}
gotbase="yes"
shift
;;
--user)
user=$2
shift 2
;;
--user=?*)
user=${1#--user=}
shift
;;
--force)
force="force"
shift
;;
[-+][0-9]*)
nice="nice -n $1"
shift
;;
*) echo $"$0: Usage: daemon [+/-nicelevel] {program}"
return 1;;
esac
done

# Save basename.
[ -z "$gotbase" ] && base=${1##*/}

# See if it's already running. Look *only* at the pid file.
if [ -f /var/run/${base}.pid ]; then
local line p
read line < /var/run/${base}.pid
for p in $line ; do
[ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"
done
fi

[ -n "${pid:-}" -a -z "${force:-}" ] && return

# make sure it doesn't core dump anywhere unless requested
ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0} >/dev/null 2>&1

# if they set NICELEVEL in /etc/sysconfig/foo, honor it
[ -n "$NICELEVEL" ] && nice="nice -n $NICELEVEL"

# Echo daemon
[ "${BOOTUP:-}" = "verbose" -a -z "$LSB" ] && echo -n " $base"

# And start it up.
if [ -z "$user" ]; then
$nice $*
else
$nice runuser -s /bin/bash - $user -c "$*"
fi
[ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup"
}

Nur leider versteh ich nich allzu viel davon^^

Ich hoffe, einer von euch schon ;)


Lockenkopf

DaFishman
27.01.06, 17:34
keiner ne Idee?