FHEM - Hardware > Einplatinencomputer
Kleines Linux Problem auf dem RPi
dougie:
Ich bin wirklich kein Linux Crack, und brauche ab und zu noch Hilfe zur Selbsthilfe :-)
Ich hatte auf meinem RPi bis heute Mittag owserver (und nur das) installiert und das lief einwandfrei!
Aufgrund von Problemen mit meinem 1W Bus musste ich owhttpd nachtinstallieren.
Hab ich gemacht mit
apt-get install owhttpd
Das ging problemlos über die Bühne und ich konnte owhttpd mit
owhttpd -p 2121 /dev/i2c-1
starten.
Dann musste ich irgendwann den RPi neu starten und der owserver wurde nicht mehr automatisch gestartet.
Ich hab probiert mit
/etc/init.d/owserver start
den manuell zu starten, aber der Service meldet FAIL
Wenn ich den owserver manuell mit
owserver -p 4304 /dev/i2c-1
starte, dann läuft er problemlos los.
Fragen: 1) wie kann ich raus finden, warum der deamon nicht startet?
2) was hab ich falsch gemacht oder muss ich machen, das der wieder automatisch startet?
VG
Ralf
Rohan:
Hi Ralf,
ich nutze zwar kein ow*, aber wenn ich diesen Beitrag lese, müssen die Dienste, da sie einander bedingen, in einer bestimmten Reihenfolge gestartet werden.
Vlt. hilft es ja.
Gruß
Thomas
dougie:
Danke Thomas,
so wie ich das verstehe, macht er Autor deines Links den start "per Hand" in Form eines Scriptes.
Bei mir gibt es in /etc/init.d die Datei owserver, und in der steht das folgende.
Leider kann ich nicht erkennen was schief läuft. Gibt es da nicht irgendwo nen LogFile, wo ich eine Fehlermeldung finden kann?
Einfach nur FAIL hilft mir leider nicht viel weiter. :-)
VG
Ralf
--- Code: ---
#!/bin/sh
### BEGIN INIT INFO
# Provides: owserver
# Required-Start: $remote_fs $syslog $network $named
# Required-Stop: $remote_fs $syslog $network $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: 1-wire TCP server
# Description: Start and stop a TCP server for 1-wire control.
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
CONFFILE=/etc/owfs.conf
DESC="1-Wire TCP Server"
NAME="owserver"
DAEMON=/usr/bin/$NAME
PIDDIR=/var/run/owfs
PIDFILE=$PIDDIR/$NAME.pid
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
d_start() {
[ -d $PIDDIR ] || {
mkdir -m 0775 -p $PIDDIR
chown root:root $PIDDIR >/dev/null 2>&1
}
start-stop-daemon --start --quiet --oknodo --exec $DAEMON -- -c $CONFFILE \
--pid-file $PIDFILE
# ensure the daemon has been started
sleep 1
pidofproc -p $PIDFILE $DAEMON >/dev/null
}
d_stop() {
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
sleep 1
if [ -f $PIDFILE ] && ! ps h `cat $PIDFILE` > /dev/null
then
# Stale PID file (owserver was successfilly stoped),
#remove it
rm -f $PIDFILE
fi
}
d_status() {
pidofproc -p $PIDFILE $DAEMON > /dev/null
}
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
d_start
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
d_stop
log_end_msg $?
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME"
d_status && d_stop
d_start
log_end_msg $?
;;
status)
d_status
if [ $? -eq 0 ];then
log_success_msg "$NAME is running"
else
log_failure_msg "$NAME is not running"
fi
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|sta$
exit 1
;;
esac
exit 0
--- Ende Code ---
jhohn:
schon in /var/log/messages oder /var/log/syslog nachgesehen?
Rohan:
Hmmm...
sowohl dein Skript, als auch das im Link steht in /etc/init.d => Skripte, die beim System-/Dienstestart genutzt werden (können).
Dein owserver und owhttpd dürften in verschiedenen Skripten gestartet werden. Wenn die Reihenfolge des Aufrufs verkehrt ist, kann es scheitern. Im Link wird alles über ein Skript gestartet, in der dort festgelegten Reihenfolge.
Mach mal ein
$ ps ax | grep ow
(evtl. mit vorangestelltem sudo)
dann siehst du laufende ow*-Prozesse, die du dann per
$ kill -9 Prozess-ID
beenden kannst (Prozess-ID findet du in der von "ps" erzeugten Ausgabe).
Dann rufst du deine Init-Skripte in der evtl. notwendigen Reihenfolge auf, also erst
$/etc/init.d/owserver start
$ /etc/init.d/owhttpd start
Funktioniert es dann?
Gruß
Thomas
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln