NFS-Server startet nach Reboot nicht automatisch

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • NFS-Server startet nach Reboot nicht automatisch

      Hallo,
      ich habe das neueste Image installiert und musste den NFS-Server nachinstallieren. Ist es richtig, dass der nicht enthalten ist?
      Jetzt habe ich das Problem, dass nach einem Reboot der Server nicht läuft.

      root@dreambox:~$ systemctl status nfs-server
      nfs-server.service - NFS server and services
      Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
      Active: failed (Result: exit-code) since Sun 2023-07-30 12:52:28 CEST; 1min 29s ago
      Jul 30 12:52:28 dreambox systemd[1]: Starting NFS server and services...
      Jul 30 12:52:28 dreambox exportfs[478]: exportfs: Failed to stat /media/hdd/movie: No such file or directory
      Jul 30 12:52:28 dreambox exportfs[478]: exportfs: Failed to stat /media/hdd/movie: No such file or directory
      Jul 30 12:52:28 dreambox systemd[1]: nfs-server.service: Control process exited, code=exited status=1
      Jul 30 12:52:28 dreambox systemd[1]: Failed to start NFS server and services.
      Jul 30 12:52:28 dreambox systemd[1]: nfs-server.service: Unit entered failed state.

      Jul 30 12:52:28 dreambox systemd[1]: nfs-server.service: Failed with result 'exit-code'.

      Manuell lässt er sich direkt im Anschluss starten mit systemctlstart nfs-server

      nfs-server.service - NFS server and services

      Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)

      Active: active (exited) since Sun 2023-07-30 12:54:14 CEST; 3s ago

      Process: 947 ExecStart=/usr/sbin/rpc.nfsd $NFSD_OPTS $NFSD_COUNT (code=exited, status=0/SUCCESS)

      Process: 943 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)

      Main PID: 947 (code=exited, status=0/SUCCESS)

      Mit joutnalctl habe ich gesehen, dass der HDD Mount nach dem Start des Servers passiert (2s)
      Kann das der Grund sein? Dass die Festplatte noch nicht eingehängt ist?
      Wie kann ich den nfs-server Start verzögern?

      Viele Grüße,
      Joe.
    • hab gerade keinen Zugriff auf meine Two

      im OE2.5 wird das nfs-server.service vom nfs-server.timer verzögert gestartet. Bin mir jetzt nicht sicher ob das im OE2.6 auch so ist

      Quellcode

      1. root@dm900:~# systemctl status nfs-server.timer
      2. ● nfs-server.timer - Timer fuer nfs-server
      3. Loaded: loaded (/lib/systemd/system/nfs-server.timer; enabled; vendor preset:
      4. Active: active (running) since Sa 2023-07-29 11:08:31 CEST; 1 day 2h ago
      5. Jul 29 11:08:31 dm900 systemd[1]: Started Timer fuer nfs-server.
      6. root@dm900:~#


      falls ja, kannst du ja mal versuchen den Timer OnBootSec=30 hochzudrehen, auf z.b. +5 oder +10 Sekunden
      Vermutlich dauert es länger bis das USB Device gemountet wird

      Quellcode

      1. root@dm900:~# cat /lib/systemd/system/nfs-server.timer
      2. [Unit]
      3. Description=Timer fuer nfs-server
      4. [Timer]
      5. OnBootSec=30
      6. Unit=nfs-server.service
      7. [Install]
      8. WantedBy=timers.target
      9. root@dm900:~#
      Alles anzeigen
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • versuch mal nn2 menu->system settings -> neustart nfs-server bei e2 start
      » time to say goodbye «

      Konfuzius sagt:
      Erst wenn eine Mücke auf deinen Hoden landet wirst du lernen Probleme ohne Gewalt zu lösen.
    • ohne das systemd nfs-server.service umzubauen gäbe es noch die Möglichkeit den nfs-server über die /etc/rc.local einfach mit Verzögerung neu zu starten
      ist zwar weder sauber noch schön und auch nicht mehr üblich, aber dafür update sicher und relativ einfach umzusetzen

      /etc/rc.local mit Schreibrechten erstellen

      touch /etc/rc.local
      chmod 755 /etc./rc.local

      Inhalt:
      \\Edit
      Script korrigiert, siehe nachfolgende Beiträge

      Shell-Script

      1. #!/bin/sh -e
      2. restart_nfs_server () {
      3. sleep 10
      4. systemctl restart nfs-server.service
      5. }
      6. restart_nfs_server &
      7. exit 0



      wenn die 10 Sekunden nicht reichen, einfach den sleep Wert erhöhen oder mit 5 Sekunden startne


      oder warten bis /media/hdd gemountet ist und dann den nfs-server neu starten

      Shell-Script

      1. #!/bin/sh -e
      2. restart_nfs-server () {
      3. while true
      4. do
      5. if ! mount|grep /media/hdd &>/dev/null;then
      6. echo "/media/hdd not mounted"
      7. sleep 1
      8. else
      9. echo "/media/hdd mounted"
      10. echo "restart nfs-server by /etc/rc.local"
      11. systemctl restart nfs-server.service
      12. exit 1
      13. fi
      14. done
      15. }
      16. nohup restart_nfs-server &
      17. exit 0
      Alles anzeigen


      letzteres hat den Nachteil, das das script in einer Endlosschleife im Hintergrund läuft, wenn nichts in /media/hdd eingangen wird, tendiere daher eher zu ersten Variante
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Fred Bogus Trumper ()

    • Quellcode

      1. root@dm920_vr:~# systemctl status rc-local.service
      2. ● rc-local.service - /etc/rc.local Compatibility
      3. Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled)
      4. Active: active (exited) since So 2023-07-30 17:44:08 CEST; 4h 29min ago
      5. CGroup: /system.slice/rc-local.service
      6. Jul 30 17:44:08 dm920_vr systemd[1]: Starting /etc/rc.local Compatibility...
      7. Jul 30 17:44:08 dm920_vr systemd[1]: Started /etc/rc.local Compatibility.
      8. Jul 30 17:45:09 dm920_vr rc.local[302]: mount.nfs: mounting pi2:/media/WD2TB_VR_VII/usbshare failed, reason given by server: No such file or directory
      Mit folgendem Befehl wird angezeigt ob rc.local beendet worden ist und vor wie langer Zeit
      oder
      wie Fred das schon früher mal vorgeschlagen hat einfach folgende Zeile in das Shell-Script einfügen

      Quellcode

      1. touch /tmp/rc-local.service.test

      Fred Bogus Trumper schrieb:

      Das Script erstellt die leere Datei /tmp/rc-local.service.test

      Wenn die Datei nach reboot in /tmp erstellt wurde, funktioniert das rc-local.service
      LG Seebueb

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von Seebueb ()

    • Quellcode

      1. root@dreambox:~$ systemctl status rc-local.service
      2. ● rc-local.service - /etc/rc.local Compatibility
      3. Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled)
      4. Active: failed (Result: exit-code) since Mon 2023-07-31 21:55:52 CEST; 1min 4s ago
      5. Jul 31 21:55:52 dreambox systemd[1]: Starting /etc/rc.local Compatibility...
      6. Jul 31 21:55:52 dreambox rc.local[512]: [27B blob data]
      7. Jul 31 21:55:52 dreambox systemd[1]: rc-local.service: Control process exited, code=exited status=1
      8. Jul 31 21:55:52 dreambox systemd[1]: Failed to start /etc/rc.local Compatibility.
      9. Jul 31 21:55:52 dreambox systemd[1]: rc-local.service: Unit entered failed state.
      10. Jul 31 21:55:52 dreambox systemd[1]: rc-local.service: Failed with result 'exit-code'.
      Alles anzeigen
      Warum failed das jetzt?
    • hat das script der Rechte 755?

      ls -al /etc/rc.local


      Wie sieht der Inhalt aus?

      cat /etc/rc.local


      Mit welchem Editor wurde das Script erstellt? Mit vi, nano auf der Box oder mit notepad++ etc. oder dem Windows Editor am PC und per FTP auf die Box geschoben?
      Falls letzteres, hilft vielleicht schon die /etc/rc.local ins unix format zu ändern

      dos2unix /etc/rc.local



      kann das script manuell ausgeführt werden oder kommt dann auch ein Fehler?

      /etc/rc.local
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • root@dreambox:~$ ls -al /etc/rc.local
      -rwxr-xr-x 1 root root 152 Jul 31 22:33 /etc/rc.local


      Shell-Script

      1. root@dreambox:~$ cat /etc/rc.local
      2. #!/bin/sh -e
      3. restart_nfs-server () {
      4. touch /tmp/rc-local.service.test
      5. sleep 10
      6. systemctl restart nfs-server.service
      7. }
      8. nohup restart_nfs-server &
      9. exit 0

      Mit Notepad++ habe ich das bearbeitet.

      root@dreambox:~$ /etc/rc.local
      /etc/rc.local: line 6: `restart_nfs-server': not a valid identifier

      Wenn ich das umbenenne kommt jetzt:
      root@dreambox:~$ /etc/rc.local
      root@dreambox:~$ nohup: appending output to nohup.out
    • lass mal das 'nohup' weg, das macht in einem Script eigentlich keinen Sinn, das ist mir aus wohl Gewohnheit reingerutscht

      also nur so:

      restart_nfs-server &

      und '-' ist im Funktionsnamen ist nicht erlaubt, srry - hab einfach den service namen reinkopiert

      das müsste aber klappen

      Shell-Script

      1. #!/bin/sh -e
      2. restart_nfs_server () {
      3. touch /tmp/rc-local.service.test
      4. sleep 10
      5. systemctl restart nfs-server.service
      6. }
      7. restart_nfs_server &
      8. exit 0
      Alles anzeigen
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Fred Bogus Trumper ()

    • root@dreambox:~$ systemctl status nfs-server
      ● nfs-server.service - NFS server and services
      Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor prese
      Active: active (exited) since Mon 2023-07-31 23:02:12 CEST; 54s ago
      Process: 663 ExecStart=/usr/sbin/rpc.nfsd $NFSD_OPTS $NFSD_COUNT (code=exited,
      Process: 660 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS
      Main PID: 663 (code=exited, status=0/SUCCESS)
      CGroup: /system.slice/nfs-server.service

      Jul 31 23:02:12 dreambox systemd[1]: Starting NFS server and services...
      Jul 31 23:02:12 dreambox systemd[1]: Started NFS server and services.

      Funktioniert mit 10s. Vielen Dank dir und gute Nacht!

      Gruß, Joe.
    • Dann lag es wirklich daran, dass der nfs-server zu früh gestartet wird bzw. das USB-Device eine längere Verzögerung bei der Erkennung bzw. beim mounten hat.

      "Schöner" wäre ein systemd timer, der den nfs-server wie im NN2 OE2.5 verzögert startet, vielleicht gibt es dazu ein update
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$