Autostart verschiedener Skripte als versch. User

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo Leute,

    ich habe einen Server mit seafile und noip aufgesetzt, dch nun stehe ich vor folgendem Problem: Unser Internet hier ist ziemlich sprunghaft und manchmal müssen wir den Router bis zu 5mal am Tag neustarten. Da wir dazu einfach die Steckerleiste neu starten, wo auch der Rasp dranhängt, wird der dann jedesmal neu gestartet.

    Ich muss zum Start zwei Skripte als user "seafile" starten, nämlich "./seafile.sh start" und "./seahub.sh start" (möglicherweise ein Begriff hier im Forum).Dazwischen / danach jeweils ein paar Sekunden warten.

    Danach wieder den Benutzer zurückwechseln (pi) und "sudo noip2" ausführen. Das wars eigentlich, aber aus meinem aus dem Internet zusammengesammelten Wissen konnte ich mir das nicht zum Funktionieren bringen.

    Kann mir da wer helfen bitte?
    Vielen Dank!!

    • Offizieller Beitrag
    Bash
    #!/bin/bash
    su seafile -c /home/pi/seafile.sh start
    sleep(5)
    su seafile -c /home/pi/seahub.sh start


    Das ganze in einem testfile speichern z.b. als seafilestart.sh, ausführbar machen

    Code
    chmod + x seafilestart.sh


    und dann spass in die rc.local

    Code
    /home/pi/seafilestart.sh
    noip2
  • Ein größeres problem wird sein, dass der Pi mit plötzlichen Strom weg genauso wenig zurecht kommt wie die meisten anderen Computer, du zerschießt dir damit irgendwann sicherlich das Dateisystem.

  • Vielen Dank für die Hilfe! Mit dem von dbv vorgeschlagenem Skript gibt es zwei Probleme:
    1) Die richtige Syntax lautet offensichtlich "-c" anstatt von "-C"
    2) Ich muss das Passwort eingeben, was man unbedingt verhindern muss, wenn möglich. An dem Rasp hängt außer der Festplatte nix dran (kein Keyboard, Maus, Bildschirm).

    Und inwiefern schadet ein Abwürgen dem Dateisystem?

    • Offizieller Beitrag

    ein visudo

    Code
    pi ALL=(seafile) NOPASSWD: /home/pi/seafilestart.sh

    sollte abhilfe schaffen, was das Pw Problem angeht.

    Schreibfehler können passieren ;)

    Strom ziehen zerlegt dir das Dateisystem, sollte aber auch logisch sein..oder siehst du bei deinem rechner auch immer das netzkabel

  • 1) Ja!
    2) dirty hack: sudo su seafile und sudo su mit NOPASSWD in die sudoers eintragen
    Aber das ist BÖSE!!!
    besser wäre das ganze über initscripte oder crontabs vernünftig zu machen, nicht über ein solches script.
    root-Crontabs können auch als bestimmte User starten lassen.
    3) Ich schreibe hi*STROM WEG*
    Tja der Satz ist nicht zu Ende, genau wie deine Dateien. das geht oftmals gut und der Pi kann die Dateien als halbfertig erkennen und löschen (Datenverlust) oder es wurde zufällig gerade ncihts geschrieben oder er kann sie auf einen alten Stand zurücksetzen, oder es ist halt kaputt und du darfst alles neu installieren.

    dvb nö das sollte nicht helfen, denn das Passwort wird benötigt um zum User seafile zu wechseln.
    Auserdem stelle das bitte nicht als gangbare Lösung dar!

    Einmal editiert, zuletzt von Horroreyes (29. Juli 2014 um 14:55)

  • Nochmals herzlichen Dank. Die eine Zeile von dbv habe ich erstmal unter die Zeile

    Code
    pi ALL=(ALL) NOPASSWD: ALL

    gesetzt? Hat nix gebracht. Ich fummel allerdings auch zum ersten Mal mit diesem File rum. Hab ich was übersehen?

    Und zum Dateisystem: Solange man den Strom nicht gerade zieht, während Daten geschrieben werden (ja, da hat man wohl wenig Einblick drauf, was grad geschrieben wird), sollten doch zumindest die Daten nicht flöten gehen? Will damit sagen: 0 bleibt 0 und 1 bleibt 1 bei einem nicht-flüchtigen Speicher. Aber ja, ich sehe euer Besorgnis hier. Is vielleicht nicht die galanteste Lösung. Vielleicht schlage ich hier auch zwei Fliegen mit einer Klappe und geb dem Rasp eine eigene Stromversorgung, dann brauch ich ja auch das Skript nicht mehr... :P

    Aber wäre super, wenn wir das hier lösen könnten. Dann hätte ich zumindest zwei Optionen zur Verfügung. Vielen Dank nochmal.

    • Offizieller Beitrag

    dann sollte in

    Code
    seafile ALL=(ALL) NOPASSWD: ALL

    das gleich für den user seafile machen. das thema defektes Dateisystem haben wie hier schon hunderte male gehabt. Das hat auch nichts mit Besorgtheit zu tun, das ist einfach Wissen. Dein Pi wird eines Tages nicht mehr starten, garantiert. Das kann heute, morgen oder in 8 Wochen sein aber es wird passieren.

  • Jedes mal wenn der Pi irgendetwas logt, auch systemlogs, wird eine Datei geöffnet, etwas geschrieben, und dann wieder geschlossen.
    Immer wenn eine Datei geöffnet ist (oder gerade geöffnet/geschlossen wird) und dann der Strom weg ist, kann plötzlich alles kaputt sein.

    Das dbv's Lösung nicht helfen wird, sagte ich ja schon. Denkfehler. Das Passwort verlangt das "su" nicht das seafile.sh
    dbv: schon richtig, deine Variante ist nicht so schlimm, ich hatte bloß die funktionierende Variante im Kopf, die halt deutlich mehr ist...


  • Danach wieder den Benutzer zurückwechseln (pi) und "sudo noip2" ausführen.

    Für noip2 kannst Du z. B. ein start-stop-Script für das Verzeichnis "/etc/init.d" erstellen oder einen Eintrag in die Datei rc.local (oder gleichwertig) machen.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • /etc/init.d/seafile

    Code
    chmod +x /etc/init.d/seafile

Jetzt mitmachen!

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