Starta owfs som service på Debian Jessie?

OWFS - One Wire File System är en Linuxmjukvara som stödjer de flesta kommersiellt tillgängliga 1wire-enheterna. OWFS saknar helt möjligheter att presentera data - detta måste göras med tex RRDTool
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Erik-NA
Tar hemautomation på allvar
Inlägg: 90
Blev medlem: 24 feb 2010, 22:19
Ort: Täby
Kontakt:

Starta owfs som service på Debian Jessie?

Inlägg av Erik-NA »

Installerade om min Raspberry PI från grunden idag med Debian Jessie och Domoticz. Har kompilerat owfs och det fungerar med

/opt/owfs/bin/owfs -u --allow_other /mnt/1wire

Har ett startscript som fungerade förut, men nu efter ominstallation så fallerar det. Jag antar att det har att göra med att raspian har övergått till upstart i Debian Jessie?

Har någon ett fungerande startskript för owfs med upstart? Följande fungerar inte för mig.

Kod: Markera allt

#!/bin/sh

### BEGIN INIT INFO
# Provides: owfs
# 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
DESC="1-Wire Files system"
NAME="owfs"
DAEMON=/opt/owfs/bin/$NAME
PIDDIR="/var/run/owfs"
PIDFILE=$PIDDIR/$NAME.pid
ARGS=" -u --allow_other /mnt/1wire"

# 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 --make-pidfile --pidfile $PIDFILE --exec $DAEMON --$ARGS
}

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|status}" >&2
 exit 1
 ;;
esac

exit 0

Får föjande fel:

Kod: Markera allt

pi@domoticzpi:~$ sudo service owfs start
Job for owfs.service failed. See 'systemctl status owfs.service' and 'journalctl -xn' for details.
pi@domoticzpi:~$ systemctl status owfs.service
● owfs.service - 1-wire filesystem FUSE mount
   Loaded: loaded (/lib/systemd/system/owfs.service; disabled)
   Active: failed (Result: exit-code) since Sat 2016-06-25 23:40:04 CEST; 11s ago
     Docs: man:owfs(1)
  Process: 1341 ExecStart=/opt/owfs/bin/owfs --server=127.0.0.1 --allow_other %t/owfs (code=exited, status=1/FAILURE)
Ser jättemärkligt ut. Jag använder ju inte växlarna "--server=127.0.0.1 --allow_other %t/owfs". Misstänker att det skapas någon wrapper runt mitt skript "owfs" i init.d (och som inte slutar med .conf)?
Senast redigerad av Erik-NA den 27 jun 2016, 08:37, redigerad totalt 1 gånger.
Home Assistant och z-wave
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: Starta owfs som service på Debian Jessie?

Inlägg av motoz »

Jessie använder systemd, inte upstart, som standard.

Det där ser ut att komma från systemd servicefilen från 'owfs' paketet i jessie: https://sources.debian.net/src/owfs/2.9 ... ervice.in/

Har du apt-get installerat owfs? I så fall ska du nog ta bort det paketet för att köra med egenkompilerat owfs.
Open source pellet logger: https://github.com/motoz/PellMon
Erik-NA
Tar hemautomation på allvar
Inlägg: 90
Blev medlem: 24 feb 2010, 22:19
Ort: Täby
Kontakt:

Re: Starta owfs som service på Debian Jessie?

Inlägg av Erik-NA »

Aha.
Du har helt rätt. Jag installerade först owfs via apt-get, men tog sedan bort det med "apt-get purge owfs" och kompilerade eget, men allt försvann tydligen inte.

Tack för påpekningen. Ska undersökas!

Filerna låg i /lib/systemd/system. Efter radering får jag felet

Kod: Markera allt

pi@domoticzpi:~# sudo service owfs start
Failed to start owfs.service: Unit owfs.service failed to load: No such file or directory.
Så jag antar att jag måste pilla på flera ställen.
Home Assistant och z-wave
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: Starta owfs som service på Debian Jessie?

Inlägg av motoz »

Men det är rätt märkligt att du hade den filen kvar om du har raderat paketet som tillhandahåller den. Att bara radera den utan att reda upp varför den var kvar kanske inte var en riktigt bra idé.

'owfs' paketet drar in en hel del andra paket, tex 'ofws-fuse', 'owserver' osv. Har du tagit bort dem också? Undrar om inte det är owfs-fuse som installerar owfs.service.
Open source pellet logger: https://github.com/motoz/PellMon
Erik-NA
Tar hemautomation på allvar
Inlägg: 90
Blev medlem: 24 feb 2010, 22:19
Ort: Täby
Kontakt:

Re: Starta owfs som service på Debian Jessie?

Inlägg av Erik-NA »

Aaah, tak för nästa påminnelse. Självklart är det som du skriver.
"apt-get purge owfs*" löste problemet. Både "owfs-common" och " owftpd" avinstallerade nu då de låg kvar.

Så nu funkar det enligt systemd-principen.

Init-skriptet, eventuellt modifierat, är kanske något som ska tillföras wikin på temperatur.nu avseende owfs?
Home Assistant och z-wave
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: Starta owfs som service på Debian Jessie?

Inlägg av motoz »

Jag tittade lite närmare på det här. Jag har aldrig haft något behov av att kompilera owfs själv och jag slipper gärna besväret att skriva initskript om det kan undvikas. Med systemd så ska det inte behövas längre (även om man fortfarande kan använda gamla initskript). Nyaste owfs upstream kommer tydligen med färdiga systemd unitfiler så om man kör

Kod: Markera allt

./configure --with-systemdsystemunitdir=auto
så får man dem på rätt ställe då man installerar. Sedan ska det bara vara att köra:

Kod: Markera allt

sudo systemctl owserver enable
sudo systemctl owserver start

för att starta owservern, antar jag...
Open source pellet logger: https://github.com/motoz/PellMon
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: Starta owfs som service på Debian Jessie?

Inlägg av motoz »

Det klarnar lite mera...

Det är alltså inte debianpaketen ow* som installerar ow*.service filer i /lib/systemd/system, de kommer med 'make install' from owfs upstream, och det som standard utan extra parametrar till ./configure.

Orsaken till att jag trodde att './configure --with-systemdsystemunitdir=auto' behövdes var att ./configure skriptet använder sig av 'pkg-config' för att leta reda på var .service filerna ska placeras och jag hade inte pkg-config installerat i ubuntu containern som jag testade med. Att pkg-config saknades upptäckte jag först efter att jag hittat att ./configure hade en --with-systemdsystemunitdir option, men den fungerade först efter att jag installerat pkg-config. Vid närmare koll så är alltså --with-systemdsystemunitdir=auto default så om man inte vill ha systemd unit filer (alltså om man vill skriva egna initscript) så ska man kompilera med

Kod: Markera allt

--with-systemdsystemunitdir=no
Open source pellet logger: https://github.com/motoz/PellMon
Erik-NA
Tar hemautomation på allvar
Inlägg: 90
Blev medlem: 24 feb 2010, 22:19
Ort: Täby
Kontakt:

Re: Starta owfs som service på Debian Jessie?

Inlägg av Erik-NA »

Jag upptäckte det som du skrivit om. När man kompilerar owfs lägger den till filer för systemd. Jag fick inte owfs att starta vid boot så jag tog ditt råd om att köra "./configure --with-systemdsystemunitdir=no" och använda init-skriptet istället.

Jag kör för domoticz och startar endast owfs.
Home Assistant och z-wave
Skriv svar