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
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