Services oder Dienste starten nicht mehr

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    auf meinem Pi habe ich das Netatalk, avvahi-daemon und hd-idle am laufen. Jedes mal wenn ich meinen PI reboot laufen diese Dienste nicht (HDD fährt nicht mehr runter und TimeMachine findet AFP Dienst nicht mehr) gehe ich nun

    sudo /etc/init.d/netatalk start
    sudo /etc/init.d/avahi-daemon start
    sudo hd-idle -i 0 -i /dev/sda -a 3000

    ein läuft mein TimeMachine und die platte geht nach 30 Minuten aus.
    Wie kann ich das in eine Autostart Datei schreiben?

    lieben Dank.

  • Hallo MrSmith,

    für die beiden Daemons solltest du die Init-Skripte entsprechend verlinken. Ruf doch mal die folgenden Befehle auf und überprüfe ob die Links in den /etc/rc Verzeichnissen bereits erstellt wurden.

    Code
    find /etc/rc* -name *netatalk
    find /etc/rc* -name *avahi-daemon

    Da die Dienste aktuell nicht gestartet werden, sollten wohl beide Befehle keine Ausgabe liefern. Wenn dem so ist, kannst du die Init-Skripte wie folgt verlinken. Dadurch sollten beim nächsten neustart die beiden Dienste automatisch gestartet werden.

    Code
    sudo update-rc.d netatalk defaults
    sudo update-rc.d avahi-daemon defaults

    Den Befehl hd-idle kannst du in die /etc/rc.local eintragen. Beim Systemstart wird dann der Befehl automatisch ausgeführt.

    Gruß Georg

  • Hallo Georg,

    Ich habe die Befehle mal eingeben

    Das hat mir das System entgegnet

    Code
    sudo update-rc.d netatalk defaults
    sudo update-rc.d avahi-daemon defaults

    Verstehe ich das so richtig. Diese befehle fügen einfach die starts der Dienste in die rc.d ein? Ist die rc.d soetwas wie eine Autostart Datei?
    Und wo liegt dann der Unterschied zur rc.d und der rc.local?

    Danke

  • Hallo MrSmith,

    Code
    sudo update-rc.d netatalk defaults
    sudo update-rc.d avahi-daemon defaults

    Diese beiden Befehle erstellen in den rcX.d Verzeichnissen symbolische Links auf das eigentliche Init-Skript, welches sich unter /etc/init.d/ befinden. Diese Links sind bei dir bereits vorhanden. Daher solltest du die beiden ersten Befehle ausführen. Wie du den Ausgaben entnehmen kannst, sind bereits die notwenidgen Start- (z.B. S19netatalk) und Stop-Skripte (z.B. K01netatalk) vorhanden. Das bedeutet allerdings auch, dass diese beiden Dienste bereits automatisch gestartet werden wenn du deinen Raspberry Pi startest. Die folgenden Befehle sollten dann eigentlich zurückmelden, dass die Dienste bereits laufen.

    Code
    sudo /etc/init.d/netatalk start
    sudo /etc/init.d/avahi-daemon start

    In den rcX.d Verzeichnissen liegen die Start- und Stop-Skripte der einzelnen Daemons die du auf einem Linux-System eingerichtet hast. Die rc.local kann man mit einer Autostartdatei vergleichen. Hier werden in der Regel keine Daemons gestartet sondern einfache kleinere Befehle die man beim Systemstart ausführen will. Für Dienste erstellt man üblicherweise ein Init-Skript unter /etc/init.d und die dazugehörigen SymLinks in den rcX.d Verzeichnissen (Hinweis: Ich schreibe hier immer ein X und meine damit eigentlich einen Runlevel).

    Gruß Georg

  • Hallo Georg,

    danke erstmal für die Erklärung. Daraus ergibt ich aber folgende Frage. Wieso brauche ich eine rc1.d eine rc2.d ... rc6.d? Also 6 Stück?
    Müssen nicht auch alle rcX.d Ordner gleich ausschauen?


    Ich habe nach einem Reboot nun diese Befehle eingegeben:

    Code
    pi@raspbmc:~$ sudo /etc/init.d/netatalk start
    Starting Netatalk services:  netatalk.
    pi@raspbmc:~$ sudo /etc/init.d/avahi-daemon start
    Rather than invoking init scripts through /etc/init.d, use the service(8)
    utility, e.g. service avahi-daemon start
    
    
    Since the script you are attempting to invoke has been converted to an
    Upstart job, you may also use the start(8) utility, e.g. start avahi-daemon

    Desweiteren habe ich in meine rc.local das eingetragen

    Was ich nun nicht verstehe hd-idle läuft ohne Probleme nach einem weiteren Neustart.


    Ich habe nun mal geschaut was in den einzelnen Ordner drin ist.

    Würde es reichen wenn ich die "K01netatalk" einfach in die rc0.d kopiere?

    Dankesehr

  • Hallo MrSmith,

    Zitat

    danke erstmal für die Erklärung. Daraus ergibt ich aber folgende Frage. Wieso brauche ich eine rc1.d eine rc2.d ... rc6.d? Also 6 Stück?
    Müssen nicht auch alle rcX.d Ordner gleich ausschauen?

    Bei Linux gibt es mehrere Runlevel. Angefangen beim Runlevel 1 welches auch als Single User Mode bezeichnet wird. Hier kann sich ein Benutzer nur lokal anmelden und es stehen nicht alle Dienste zur Verfügung. Das Netzwerk funktioniert hier normalerweise noch nicht. Im Runlevel 3 werden häufig Server betrieben weil hier bereits alle Netzwerkdienste laufen aber keine grafische Oberfläche welche auf einem Server nicht benötigt wird. Ein Desktop mit grafischer Oberfläche wie Gnome, KDE, ... läuft in der Regel im Runlevel 5. Neben den Runlevel1 bis 5 gibt es noch das Runlevel 0 und 6. Das Runlevel 0 ist der Shutdown und 6 der Neustart.
    Wenn du mir bis hier folgen konntest, denke ich hat sich die zweite Frage bereits erledigt. In den Verzeichnissen liegen deshalb unterschiedliche SymLinks, weil bestimmte Dienste in einigen Runleveln nicht gestartet werden müssen/können und andererseits auch nicht beendet werden müssen.

    Zitat

    Ich habe nach einem Reboot nun diese Befehle eingegeben:

    Nach der Ausgabe scheint es so als wären die Dienste noch nicht gestartet. Wundert mich da die Init-Skripte soweit ich das jetzt beurteilen kann korrekt verlinkt wurden.
    Bekommst du beim Booten irgendwelche Fehlermeldungen oder stehen in den Logdateien irgendwelche Hinweise auf ein Problem beim Starten?

    Zitat

    Würde es reichen wenn ich die "K01netatalk" einfach in die rc0.d kopiere?

    Die "K01netatalk" liegt schon an der richtigen Stelle. Wenn du zum Beispiel einen Shutdown aufrufst oder in den Runlevel 1 (Single User Mode) wechselt werden die Kill-Skripte aus dem rc1.d Verzeichnis aufgerufen. Dadurch wird dann der netatalk Daemon beendet. Das passt so schon.

    Wie gesagt überprüfe mal die Logdateien und den Bootscreen. Eventuell nach dem Neustart einmal den folgenden Befehl aufrufen damit du siehst welche Prozesse überhaupt laufen. Interessant sind natürlich netatalk und der avahi-daemon.

    Gruß Georg

  • Hallo,

    Ja das mit den runlevel habe ich jetzt verstanden. Ich habe Raspbmc aus meinem Pi installiert. Wenn er mir in die GUI Hochfährt ist er also im runlvel 5 sprich mein netatalk sollte eigentlich aber dem Punkt der GUI laufen.


    Beim booten sehe ich nur das Rampbmc logo. Aber ich habe nach einem reboot mir mal der kern.log, daemon.log und das user.log durchgelesen. Da habe ich keine Fehler oder etwas über netatalk allgemein gefunden.

    Ich habe das nochmal versucht was du mir vorgeschlagen hast


    Aber das brachte mir auch nichts.
    Gibt es vielleicht noch eine Möglichkeit, eine zweite Autostart Datei?

  • Hallo MrSmith,

    wenn dein System gestartet ist ruf mal den folgenden Befehl auf.

    Code
    runlevel

    Bei meiner frischen Raspbmc Installation erhalte ich als Ausgabe das Runlevel 2. Soweit mir bekannt ist verwendet Raspbmc keinen X-Server. Dadurch ist das Standard-Runlevel auch nicht das Runlevel 5.

    Nachdem aber laut den obigen Ausschnitten auch im rc2.d Verzeichnis die notwendigen SymLinks auf die Init-Skript vorhanden sind sollten die Dienste auch im Runlevel 2 automatisch gestartet werden.

    Mir gehen langsam die Ideen aus. Wie hast du netatalk, hd-idle und den avahi-daemon installiert? Ich denke ich muss mir das morgen selber mal installieren.

    Gruß Georg

  • Morgen Morgen,

    Ich habe auch runlevel N2 raus bekommen.

    Avahi habe ich installiert über

    Code
    sudo apt-get install avahi-daemon libavahi-client-dev libdb5.3-dev db-util db5.3-util libgcrypt11 libgcrypt11-dev


    Netatalk über

    Code
    wget http://sourceforge.net/projects/netatalk/files/netatalk/3.0/netatalk-3.0.tar.bz2
    
    
    tar xvfj netatalk-3.0.tar.bz2
    
    
    cd netatalk-3.0
    ./configure –with-init-style=debian –with-zeroconf
    make
    sudo make install

    und anschließend wie du schon geschrieben hast:

    Code
    sudo /etc/init.d/netatalk start
    sudo /etc/init.d/avahi-daemon start
    
    
    cd /etc/init.d/
    sudo update-rc.d netatalk defaults

    HD-Idle läuft inzwischen super.

    Gruß und danke für deine Mühen.
    Smithy

  • Hallo MrSmith,

    ich habe mir das ganze auf einem frisch installiertem Raspbmc angesehen. Der avahi-daemon ist bereits von Haus aus installiert und läuft auch bereits im Hintergrund.

    Code
    pi@raspbmc:~$ sudo apt-get update
    pi@raspbmc:~$ sudo apt-get install avahi-daemon
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    avahi-daemon is already the newest version.
    0 upgraded, 0 newly installed, 0 to remove and 49 not upgraded.
    pi@raspbmc:~$ sudo status avahi-daemon
    avahi-daemon start/running, process 1377

    Also hier gibt es eigentlich nichts zu tun. Oder hast du an der Konfiguration etwas verändert?

    Für Netatalk gibt es bereits ein Debian-Paket welches du mit dem folgenden Befehl installieren könntest. Allerdings handelt es sich dabei um die Version 2.2.2-1 und nicht um die von dir verwendete Version 3.0.

    Code
    pi@raspbmc:~$ sudo apt-get install netatalk

    Daher habe ich versucht die Version 3.0 wie von dir beschrieben zu installieren (es gibt übrigens schon Version 3.0.2). Das hat bereits beim Entpacken ein kleines Problem bereitet, weil bzip2 standardmäßig nicht installiert ist. Auch fürs Kompilieren haben einige Abhängigkeiten gefehlt. Ich bin wie folgt vorgegangen

    Code
    pi@raspbmc:~$ wget http://sourceforge.net/projects/netatalk/files/netatalk/3.0/netatalk-3.0.tar.bz2
    pi@raspbmc:~$ sudo apt-get install bzip2 automake libtool build-essential pkg-config checkinstall libavahi-client-dev libdb5.1-dev db-util db5.1-util libgcrypt11 libgcrypt11-dev
    pi@raspbmc:~$ tar xjf netatalk-3.0.tar.bz2
    pi@raspbmc:~$ cd netatalk-3.0
    pi@raspbmc:~/netatalk-3.0$ ./configure --with-init-style=debian --with-zeroconf
    pi@raspbmc:~/netatalk-3.0$ make
    pi@raspbmc:~/netatalk-3.0$ sudo make install

    Nach der Installation habe ich dann den Daemon gestartet und das Init-Skript verlinkt.

    Nach einem Neustart läuft bei mir wie erwartet der netatalk Daemon.

    Code
    pi@raspbmc:~$ ps ax | grep netatalk
      441 ?        S      0:00 /usr/local/sbin/netatalk
    pi@raspbmc:~$ sudo /etc/init.d/netatalk start
    Starting Netatalk services: netatalk is already running (pid = 441), or the lock file is stale.

    Warum es bei dir diese Probleme gibt kann ich gerade nicht nachvollziehen. Vielleicht installierst du Raspbmc nochmal neu und versuchst es wie hier beschrieben nochmals.

    Gruß Georg

    Einmal editiert, zuletzt von boandlkramer (2. März 2013 um 14:03)

  • Danke nochmal für die Mühe....
    verstehe die Hälfte wieder nicht die du da ein tippst... was macht der Befehl?

    Code
    ps ax | grep netatalk

    Wenn ich das bei mir eingebe kommt das gleiche. Setzt ich mich an meinen Mac, sage meinem Mac starte ein TimeMachine Backup, bringt er das er das Backup Laufwerk nicht finden kann. gebe ich dann Netatak start ein läuft auch TimeMachine

    Startet er diesen Dienst nur halb?

    PS: da es sich bei Netatalk, HD-Idle und Avahi-Daemon um Dienste handelt kann ich diese Zeilen aus meiner rc.local wieder löschen.

    Einmal editiert, zuletzt von MrSmith (2. März 2013 um 16:02)

  • Hallo MrSmith,

    mit "ps ax" werden die aktuellen Prozesse angezeigt. Durch "grep" filtere ich dann nur die Zeilen heraus, in welchen "netatalk" steht. Alles andere ist an dieser Stelle eher uninteressant.

    Zitat

    Startet er diesen Dienst nur halb?

    Hast du denn etwas freigegeben oder nur den Daemon gestartet? Standardmäßig werden keine Verzeichnisse über AFP freigegeben. Das bedeutet du kannst logischerweise auch auf keine Freigabe zugreifen. Die Konfiguration findest du in der Datei /usr/local/etc/afp.conf. Wenn du die Heimatverzeichnisse unter /home freigeben willst, musst du dort die folgenden Zeilen einfügen.

    Code
    [Homes]
    basedir regex = /home

    Nachdem du die Konfiguration angepasst hast, musst du diese neu laden.

    Code
    sudo /etc/init.d/netatalk force-reload

    Da ich keinen Mac besitze kann ich da nicht mehr viel testen. Ich habe die einzelnen Schritte zur Installation von Netatalk und zum Freigeben der Heimatverzeichnisse in einer Anleitung beschrieben, aber wie gesagt kann ich das ganze von der Mac-Seite nicht testen. Wäre klasse wenn du mir da ein Feedback geben könntest. Ungetestet will ich die Anleitung nicht veröffentlichen.

    Zitat

    PS: da es sich bei Netatalk, HD-Idle und Avahi-Daemon um Dienste handelt kann ich diese Zeilen aus meiner rc.local wieder löschen.

    Normalerweise ja. Mach aber vorsichtshalber danach einen Neustart.

    Gruß Georg

    Einmal editiert, zuletzt von boandlkramer (2. März 2013 um 16:15)

  • Hallo,

    jap in der Datei /usr/local/etc/afp.conf habe ich mein TimeMachine freigegeben. und mein Home Verzeichnis.

    Ich starte mein System und es läuft nur der netatalk das reicht mir noch nicht.

    Code
    pi§raspbmc:ç$ ps ax ° grep netatalk
     1427 pts/0    S+     0:00 grep netatalk

    Ich Starte noch netatalk aus dem sbin Ordner

    Code
    pi§raspbmc:ç$ sudo /usr/local/sbin/netatalk start
    pi§raspbmc:ç$ ps ax ° grep netatalk
     1431 ?        S      0:00 /usr/local/sbin/netatalk start
     1436 pts/0    S+     0:00 grep netatalk


    und Zack TimeMachine rennt.

    Jetzt habe ich mir die Frage gestellt wie bekomme ich netatalk aus dem sbin Ordner noch gestartet. mit einem netatalk restart nach dem reboot würde es la gehen aber das bekomme ich ja nicht automatisiert. Also versuchte ich.

    Code
    pi§raspbmc:ç$ sudo update-rc.d /usr/local/sbin/netatalk defaults
    update-rc.d: using dependency based boot sequencing
    update-rc.d: error: unable to read /etc/init.d//usr/local/sbin/netatalk


    ging wohl eher weniger. Liegen hier Nutzerrechte quer? *geraten*


    Jetzt dachte ich ab damit in meine /etc/rc.local
    Also Zeile "sudo /usr/local/sbin/netatalk start" mit und ohne SUDO davor nichts geht.
    Schön ist anders.

    Jetzt frage ich mich wo muss ich diese "sudo /usr/local/sbin/netatalk start" herrein schreiben um das er mir das startet?

    Danke dir.

  • Hallo MrSmith,

    Zitat

    Ich starte mein System und es läuft nur der netatalk das reicht mir noch nicht.

    Code
    pi§raspbmc:ç$ ps ax ° grep netatalk
    1427 pts/0    S+     0:00 grep netatalk

    Nur das hier noch kein Netatalk-Daemon läuft. Was du da siehst ist der Prozess von grep mit welchem die Ausgabe gefiltert wird. Hast du jetzt eigentlich Raspbmc neu installiert und dann wie von mir beschrieben Netatalk installiert? Ich habe da gerade so meine Zweifel, dass dein Netatalk beim Booten von Raspbmc auch gestartet wird.

    Zitat

    Ich Starte noch netatalk aus dem sbin Ordner

    Das sollte eigentlich das Init-Skript erledigen.

    Also inzwischen hast du wohl an so vielen Stellen in deinem System geschraubt, dass keiner von uns noch genau sagen kann warum das nicht klappt. Wie gesagt installier Raspbmc nochmal neu und installier erstmal nur Netatalk. Der avahi-daemon ist dann ja schon installiert und hd-idle lässt du fürs erste mal weg. Wenn dann Netatalk funktioniert können wir uns immer noch um hd-idle kümmern.

    Gruß Georg

    PS: Mit der Darstellung in deiner Shell stimmt wohl auch etwas nicht mehr.

  • Hallo,

    ich werde noch Wahnsinnig!!
    Jetzt habe ich mein Raspberry Pi neu mit Raspbmc aufgespielt zum 2ten mal. das erste mal habe ich einfach meine externe Festplatte nicht mehr mounten. Heute Abend habe ich es nochmals ausgespielt. nun bekomme ich das beim Befehl apt-get update



    Weiß hier jemand was das bedeutet und wie ich das Problem beheben kann?

    Gruß
    ....

  • Hallo MrSmith,

    ich kenne die Probleme bei Raspbmc bereits. Ich vermute, dass bei Raspbmc einige Änderungen gemacht wurden, welche ein Update mit diesen Fehlermeldungen scheitern lassen. Ich habe auf der Raspbmc-Seite das folgende zum Thema Systemupdate gefunden.

    http://www.raspbmc.com/wiki/technical/update-system/

    Raspbmc hat also ein eigenes Updatesystem welches im Hintergrund ausgeführt wird. In wie weit dieses mit der Paketverwaltung APT zusammenarbeitet kann ich nicht sagen. An deiner Stelle würde ich kein Update über APT durchführen und nur die benötigten Pakete installieren.

    Gruß Georg

  • Danke, für die schnelle Antwort.
    Aber die Pakete bekomme ich auch nicht installiert.


  • Hallo MrSmith,

    indem du bereits mit dem Update angefangen hast, hat APT jetzt die Updates in seiner Paketliste als unvollständig installiert stehen. Das bedeutet, APT versucht es immer wieder die Pakete zu installieren. Ich sage es nur ungern, aber am schnellsten löst du das Problem indem du nochmal das Image auf die SD-Karte schreibst. Nach der Neuinstallation installierst du nur die Pakete welche du wirklich brauchst. Zum Kompilieren von Netatalk musst du einige Abhängigkeiten installieren. Dazu musst du nur die folgenden zwei Befehle nach der Neuinstallation ausführen (das habe ich bereits mehrfach getestet und dabei keine Probleme gehabt).

    Code
    pi@raspbmc:~$ sudo apt-get update
    pi@raspbmc:~$ sudo apt-get install automake build-essential bzip2 checkinstall db-util db5.1-util libavahi-client-dev libdb5.1-dev libgcrypt11 libgcrypt11-dev libtool pkg-config

    Danach erfolgt die Installation von Netatalk wie bereits beschrieben.

    Gruß Georg

  • Hallo,

    ich habe jetzt mein Pi neu mit Raspbmc bespielt. Laufwerk gemountet, Abhängigkeiten installiert und netatalk in Version 3.0.2 installiert. Hat alles wundervoll funktioniert. Doch das alte Problem bleibt.

    Netatalk läuft als Dienst aber ich komme von meinem Mac mit AFP oder SMB nicht auf meinen PI.
    erst nach

    Code
    sudo /etc/init.d/netatalk restart
    sudo /etc/init.d/avahi-daemon restart

    läuft alles super.

    Jetzt habe ich genau diese beiden Zeilen in die rc.local eingetragen.
    läuft dennoch nicht. Gebe ich es Händisch ein geht es.

    Bleibt die Frage wo kann ich diese restart Befehle eintragen das er mir die Dienste neustartet?

    Danke

  • Hallo MrSmith,

    wenn ich dich richtig verstehe, dann laufen jetzt Netatalk und der avahi-daemon nach dem Neustart. Also ohne dass du einen Neustart durchführst siehst du beim Aufruf von "ps ax" für beide einen Prozess laufen. Allerdings erst wenn du einen Neustart beider Dienste machst kannst du auch auf den Server zugreifen.

    Ist beim Neustarten die Reihenfolge in welcher du die Dienste startest relevant? Also funktioniert die folgende Reihenfolge nach dem Neustart auch?

    Code
    sudo /etc/init.d/avahi-daemon restart
    sudo /etc/init.d/netatalk restart

    Über welche Netzwerkanbindung gelangst du auf den Raspberry Pi? Verwendest du die Ethernet-Schnittstelle oder hast du auch eine WLAN-Anbindung?

    Da das Problem scheinbar nicht an der Konfiguration der Dienste liegt und wenn ich dich richtig verstehe auch automatisch gestartet werden, gibt es für mich jetzt zwei Punkte die zu klären sind.

    1) Müssen die Dienste in einer bestimmten Reihenfolge gestartet werden was aktuell durch das Init-System noch nicht erfüllt wird? Oder werden die Dienste zu früh gestartet?
    2) Direkt nach dem Systemstart sollten die Dienste auf eingehende Anfragen warten. Auf welchem Interface machen die das? Dazu kannst du mal den folgenden Befehl aufrufen.

    Code
    netstat -l

    Ich muss mir das später auf meinem Raspberry Pi nochmal anschauen. Leider kann ich den Zugriff aber aus bekanntem Grund nicht testen.

    Gruß Georg

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!