[gelöst]FHEM lässt sich nicht mehr starten.Ein Prozess lässt sich nicht "killen"

Begonnen von DerTobi, 25 Dezember 2016, 14:26:27

Vorheriges Thema - Nächstes Thema

DerTobi

Hallo und schöne Weihnachten euch allen!

Pünktlich zum 24. hat sich mein fhem, ohne Vorwahnung, in den Weihnachtsurlaub abgemeldet. Am 23. lief alles noch ohne Probleme.

Ich habe nun Heute viel gelesen und auch einige Sachen gefunden. Leider bin ich aber einfach zu unerfahren um es alleine hin zu bekommen.

Scheinbar läuft der Prozess 1078 weiter und ich kann fhem nicht richtig beenden um es neu zu starten. Die Weboberfläche ist über keinen Port mehr erreichbar und fhem scheint insgesamt nicht zu laufen.

ps aux | grep [f]hem
netstat -nltp | grep perl


Wirft mir folgendes  aus:


root@raspberrypi:/home/pi# ps aux | grep [f]hem
fhem      1078 99.9  2.4  27640 23556 ?        R    13:21  60:31 perl fhem.pl fhem.cfg
root@raspberrypi:/home/pi# netstat -nltp | grep perl
tcp        0      0 0.0.0.0:7072            0.0.0.0:*               LISTEN      1078/perl
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN      1078/perl
tcp        0      0 0.0.0.0:8084            0.0.0.0:*               LISTEN      1078/perl
tcp        0      0 0.0.0.0:8085            0.0.0.0:*               LISTEN      1078/per



Dann habe ich versucht den Prozess 1078 mit:

ps aux | grep [f]hem
kill 1078
ps aux | grep [f]hem
/etc/init.d/fhem start


zu killen und FHEM neuzustarten. Aber der Prozess bleibt einfach da. Ich habe nun schon alles, was ich gefunden habe, versucht. Komme aber einfach nicht weiter.

Ich verstehe auch einfach nicht was passiert sein soll. Mein FHEM lief die ganze Zeit und die letzten 2 Wochen habe ich nichts verändert. Auch kein Update oder sonstiges gemacht.


Ich würde mich sehr freuen wenn mir von euch jemand einen Tipp geben könnte.

Vielen Dank schon an alle die das hier lesen!!


viegener

Möglicherweise hängt fhem in einer Art Endlosschleife (warten auf externe Bedingung etc).

Steht etwas im log file?

Wenn es "nur" darum geht den Server wieder neu zustarten, wäre eine Möglichkeit mal statt kill
kill -9 1078
oder sogar
sudo kill -9 1078
auszuprobieren
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

DerTobi

Ich würde dir gerne ein LOG zur Verfügung stellen. Leider weiss ich nicht wie das geht :D

Sorry. Ich bin wirklich Anfänger in der Linux-Welt. Sollte ich es mal versuchen die Prozesse wie von dir beschrieben zu killen oder kann da etwas kaputt gehen?

viegener

Mit log war der fhem log gemeint, denn es ist ja nur FHEM stehengeblieben, soweit das erkennbar ist. Es sollte ja für Dich interessant sein, herauszufinden, warum Dein System stehengeblieben ist. Der log (üblicherweise in /opt/fhem/ und mit einem Namen wie fhem-2016-12.log

Dazu findest Du im Forum aber auch jede Menge Infos.

Hat denn der kill -9 funktioniert?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

DerTobi

Ja, der Kill -9 hat funktioniert. Jetzt habe ich aber das gleiche Problem mit dem Prozess 3018....


Ich gucke mal ob ich aus dem log schlau werde...

Edit:

Im Log steht als einzig "auffälliges" das hier:

2016.12.25 13:49:46 1: telnetPort: Can't open server port at 7072: Die Adresse wird bereits verwendet. Exiting.
2016.12.25 13:52:46 1: Including fhem.cfg
2016.12.25 13:52:46 1: telnetPort: Can't open server port at 7072: Die Adresse wird bereits verwendet. Exiting.
2016.12.25 13:53:38 1: Including fhem.cfg
2016.12.25 13:53:38 1: telnetPort: Can't open server port at 7072: Die Adresse wird bereits verwendet. Exiting.
2016.12.25 14:12:01 1: Including fhem.cfg
2016.12.25 14:12:01 1: telnetPort: Can't open server port at 7072: Die Adresse wird bereits verwendet. Exiting.
2016.12.25 14:14:52 1: Including fhem.cfg
2016.12.25 14:14:52 1: telnetPort: Can't open server port at 7072: Die Adresse wird bereits verwendet. Exiting.


Könnte es das sein?


Edit2:

Immer wenn ich den einen Prozess kille und fhem neustarte hängt ein neuer Prozess... Jetzt ist es 3317

viegener

Mmmh - Zumindest sollte das nicht so sein, dass der port noch belegt ist, das kann allerdings verschiedene Ursachen haben.

Hast Du etwas mehr im log file, als nur diese EInträge?

Hast Du den ganzen Server / Rechner mal neugestartet - sprich runtergefahren - stromlos gemacht - durchgeschnauft - neugestartet?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

DerTobi

Hallo nochmal,

ich konnte das Problem lösen. Ich habe einen guten Tipp, auserhalb des Forums, bekommen.

Es lag an der "fhem.save" welche man unter opt/fhem/log findet. Scheinbar war dort ein Status falsch ablegt und hat FHEM in die knie gezwungen. Nach dem umbenennen der Datei konnte ich Fhem komplett herunterfahren und aucj Fehlerfrei wieder starten.

FHEM kennt dann halt keinen Status der Geräte mehr. Aber nach neuen betätigen sind diese wieder vorhanden. Es wurde automatisch eine neue fhem.save erstellt.

Also läuft nun alles wieder.

Ich bedanke mich aber trotzdem für die Hilfe hier!!

Schönen Abend allen noch!

Don Pedro

Hallo!

Ich habe seit Neuestem ein ähnliches Problem. Es gab einen Stromausfall, danach fuhr FHEM nicht mehr richtig hoch (muss nicht zwingend etwas mit dem Stromausfall zu tun haben):

  • Die Weboberfläche ist nicht mehr ansprechbar
  • ps aux | grep [f]hem zeigt zwei fhem Prozesse
  • ein ./fhem stop beendet diese nicht, sondern man muss mit kill -9 ran
  • Nachdem man die fhem Prozesse weggeschossen hat, startet ein "./fhem start" fhem (dann auch erwartungsgemäß nur mit einem Prozess) und es ist dann auch über die Weboberfläche ansprechbar - bis zum nächsten Neustart
  • im Log sehe ich den "üblichen" Eintrag
2017.01.08 22:56:57 1: Including fhem.cfg
2017.01.08 22:56:58 1: telnetPort: Can't open server port at 7072: Die Adresse wird bereits verwendet. Exiting.


Ich habe nun ein wenig mit der fhem.save herumgespielt. Ich habe irgendwo im Netz gelesen, dass diese evtl. für das Problem verantwortlich sein soll und man sie testhalber mal löschen soll. Das habe ich natürlich nicht getan, sondern vorsichtshalber die Datei nur umbenannt. Es wird auch eine neue Datei angelegt, aber das Problem geht nicht weg, es äußert sich nur anders. Im Log tauchen jetzt zahlreiche Fehlermeldungen auf, dass das Netzwerk nicht ansprechbar sei (eine Lüge, denn via PUTTY komme ich ja noch drauf. Korrekt müsste es hier heißen "kann nicht an Netzwerkport binden", denn genau das ist das Problem, da hockt nämlich schon der erste fhem-Prozess drauf):


2017.01.08 23:28:03 1: Including fhem.cfg
2017.01.08 23:28:04 3: telnetPort: port 7072 opened
2017.01.08 23:28:04 3: WEB: port 8083 opened
2017.01.08 23:28:04 3: WEBphone: port 8084 opened
2017.01.08 23:28:04 3: WEBtablet: port 8085 opened
2017.01.08 23:28:05 2: eventTypes: loaded 2456 events from ./log/eventTypes.txt
2017.01.08 23:28:05 1: HMLAN_Parse: Homematic_HM_CFG_LAN new condition disconnected
2017.01.08 23:28:05 3: Opening Homematic_HM_CFG_LAN device 192.168.178.30:1000
2017.01.08 23:28:05 3: Can't connect to 192.168.178.30:1000: Das Netzwerk ist nicht erreichbar
2017.01.08 23:28:08 3: Opening FritzBox_1_Anrufe device 192.168.178.1:1012
2017.01.08 23:28:08 3: Can't connect to 192.168.178.1:1012: Das Netzwerk ist nicht erreichbar
2017.01.08 23:28:08 3: Can't connect to 192.168.178.1:1012: connect to http://192.168.178.1:1012: Das Netzwerk ist nicht erreichb$
2017.01.08 23:28:09 1: Including ./log/fhem.save


Auch hier sind wieder zwei fhem Prozesse sichtbar, ich kann sie mit kill -9 töten (mit ./fhem stop hingegen nicht) und nach einen anschließenden ./fhem start ist fhem auch wieder da.

Offenbar kommen sich hier die beiden laufenden fhem-Prozesse in die Quere, verständlich. Sie verursachen eine Race Condition, je nachdem kann mal der eine, mal der andere einen Port für sich belegen und der andere fällt dann auf die Nase. Aber WTF? Wieso werden bei Start des Raspi zwei fhem-Prozesse gestartet und wie stelle ich das ab?

BR

Don

viegener

Die Frage ist doch was macht Dein "./fhem" ?

Starte doch mal von Hand mit perl fhem.pl fhem.cfg aus dem fhem-Verzeichnis

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Achso und es macht vermutlich wenig Sinn in einem gelösten Thread das Problem aufzumachen, denn dann lesen nur wenige...
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Don Pedro

Hallo,

dass es vlt. nicht glücklich ist auf einen geschlossenen Thread zu posten hatte ich auch schon überlegt! Andererseits ist das "gelöste" auch genau mein Problem oder zumindest sehr ähnlich. Passt also im Prinzip zu diesem Thread. Vlt. mache ich aber doch mal einen neuen auf und verlinke hierhin...

Zitat von: viegener am 09 Januar 2017, 13:37:43
Die Frage ist doch was macht Dein "./fhem" ?

Starte doch mal von Hand mit perl fhem.pl fhem.cfg aus dem fhem-Verzeichnis

Naja, es startet eine fhem Instanz. Die Eingabe führt auf der Konsole zu keinerlei weiterer Ausgabe, man bekommt das Prompt zurück und kann dann mit
ps aux | grep [f]hem
kontrollieren dass fhem nun läuft. /etc/init.d/fhem start führt zum gleichen Ergebnis.

viegener

Wie gesagt - starte manuell mit dem angegebenen Befehl und schaue mal was passiert
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können