Ankündigung

Einklappen
Keine Ankündigung bisher.

bash script ausführen nach @reboot im crontab

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • bash script ausführen nach @reboot im crontab

    Hallo, ich weiß nicht ob das schon zu speziel ist "Linux" aber ich habe eine Frage zum Bash script wo es noch an einigen stellen hapert....

    Mein Vorhaben ist nach @reboot eine tmux session zu starten, 3 weitere fenster öffnen und in den jeweiligen fenstern ein programm starten.#

    mein script bisher:

    Code:
    #!/bin/bash
    /bin/sleep 5
    /usr/bin/tmux new-session -d -s mad
    cd /home/mapadroid/MAD && screen -S MAD -dm python3 start.py -wm -os
    tmux rename-window 'MAD'
    tmux new-window
    cd /home/mapadroid/OSM-Rocketmap && screen -S RM -dm python3 runserver.py
    tmux rename-window 'RM'
    tmux new-window
    cd /home/mapadroid/PokeAlarm && screen -S PokeAlarm -dm python start_pokealarm.py
    tmux rename-window 'PokeAlarm'
    tmux new-window
    mc
    tmux select-window -t $session:0
    leider macht es nicht das, was es soll...
    scripte werden ausgeführt wenn ich das script manuell über die console starte ausgeführt, sie laufen auch aber nicht in der session ?

    über cron wird das bash gestartet aber nur eine session erstellt...

  • #2
    Zitat von micha854 Beitrag anzeigen
    Hallo, ich weiß nicht ob das schon zu speziel ist "Linux" aber ich habe eine Frage zum Bash script wo es noch an einigen stellen hapert....

    Mein Vorhaben ist nach @reboot eine tmux session zu starten, 3 weitere fenster öffnen und in den jeweiligen fenstern ein programm starten.#

    (..)

    leider macht es nicht das, was es soll...
    scripte werden ausgeführt wenn ich das script manuell über die console starte ausgeführt, sie laufen auch aber nicht in der session ?

    über cron wird das bash gestartet aber nur eine session erstellt...
    wieso willst Du nein terminal multiplexer nach dem reboot starten, wieso über cron ?
    Wie soll der init prozess oder cron sowas wie "new window" starten ?

    wenn Du magst erläutere Dein Vorhaben geneauer, oder lese doich doch mal in die unix welt ein.

    Kommentar


    • #3
      Hey,

      EDIT: ich lasse ein script ausführen nach dem reboot ---> /home/user/startup.sh

      wir lassen auf dem server 3 python scripte laufen über eine TMUX Session, damit die scripte weiter laufen sobal terminal geschlossen ist...

      das wir regelmäsig den server neustarten müssen, hatte ich die idee über einen cronjob ein bash auszuführen nach dem reboot vom server.

      wass soll gemacht werden:


      1. eine tmux session starten
      2. im aktuellen fenster [0] der session das script ausführen: /home/mapadroid/MAD/python3 start.py -wm -os
      3. ein neues Fenster anlegen (im bash möglich über "tmux new-window" ---> fenster [1]
      4. in fenster [1] starte --> /home/mapadroid/OSM-Rocketmap/python3 runserver.py
      5. neues fenster [2]
      6. starte --> /home/mapadroid/PokeAlarm/python start_pokealarm.py
      7. neuses fenster [3] ---> Mindnight Commander starten


      wenn ich mich auf dem terminal einlogge gebe ich einfach nur folgenden befehl ein

      tmux attach

      und er öffnet mit die vorhandene session mit den 4 fenstern

      Kommentar


      • #4
        Zitat von micha854 Beitrag anzeigen
        Hey,

        EDIT: ich lasse ein script ausführen nach dem reboot ---> /home/user/startup.sh
        mit neustart ist hier wohl nict reboot gemeint ?

        Zitat von micha854 Beitrag anzeigen
        wir lassen auf dem server 3 python scripte laufen über eine TMUX Session, damit die scripte weiter laufen sobal terminal geschlossen ist...
        tmux ? server ?
        hört sich nach wie vor alles sehr sonderbar an ...
        was ist denn bitte ein server in deiner terminologie ?


        Zitat von micha854 Beitrag anzeigen
        das wir regelmäsig den server neustarten müssen, hatte ich die idee über einen cronjob ein bash auszuführen nach dem reboot vom server.
        naja,m was ich du der idee meinte steht in #2

        Zitat von micha854 Beitrag anzeigen
        wass soll gemacht werden:


        1. eine tmux session starten
        2. im aktuellen fenster [0] der session das script ausführen: /home/mapadroid/MAD/python3 start.py -wm -os
        3. ein neues Fenster anlegen (im bash möglich über "tmux new-window" ---> fenster [1]
        4. in fenster [1] starte --> /home/mapadroid/OSM-Rocketmap/python3 runserver.py
        5. neues fenster [2]
        6. starte --> /home/mapadroid/PokeAlarm/python start_pokealarm.py
        7. neuses fenster [3] ---> Mindnight Commander starten


        wenn ich mich auf dem terminal einlogge gebe ich einfach nur folgenden befehl ein

        tmux attach

        und er öffnet mit die vorhandene session mit den 4 fenstern

        ich blicke da immer noch nicht ganz durch; vor allem ist nicht nicht klar, wieso du nicht einfach
        Code:
         
         tmux-session save    
         tmux-session restore
        nutzt.

        Kommentar


        • #5
          den server neustarten ----> "neustart" oder "reboot" ist für mich das gleiche

          tmux:
          https://wiki.ubuntuusers.de/tmux/

          server nutzen wir einen mit ubuntu 18.04

          als terminal nutzen wir putty SSH


          an sich läuft das bash script ja, nur eben nicht wie beschrieben...

          Kommentar


          • #6
            Ok, wenn Du meinst, dann weisst Du es besser.


            ssh ist kein terminal, lediglich das programm um auf den entfernten rechner zuuzugreifen.

            ob du klickibunti nutzt, es gehört hier nicht zum problem.
            wieso du mir tmux verlinkst, keine ahnung.

            Du würdest Deiner lösung näher kommen, reflektvierstet Du mal kurzfristig meine Posts.

            Gut, soll es Dir jemand anderes auf dem Silbertablet servieren, ich bin der Meinung, nutzt oder administriert man ein *nix es os, sollte man die grundlagen kennen.

            Bin hier raus.

            Kommentar


            • #7
              Zitat von micha854 Beitrag anzeigen
              Code:
              #!/bin/bash
              /bin/sleep 5
              /usr/bin/tmux new-session -d -s mad
              cd /home/mapadroid/MAD && screen -S MAD -dm python3 start.py -wm -os
              tmux rename-window 'MAD'
              tmux new-window
              cd /home/mapadroid/OSM-Rocketmap && screen -S RM -dm python3 runserver.py
              tmux rename-window 'RM'
              tmux new-window
              cd /home/mapadroid/PokeAlarm && screen -S PokeAlarm -dm python start_pokealarm.py
              tmux rename-window 'PokeAlarm'
              tmux new-window
              mc
              tmux select-window -t $session:0
              leider macht es nicht das, was es soll...
              Das sieht falsch aus. Ich kenn mich mit tmux nicht aus, aber eine "tmux ..." und danach ein "cd /.." dürften etwas anders machen als du dir vorstellst. Das Bash Script wird nicht so ausgeführt, als würdest du das per Hand eingeben. Die Befehle werden nacheinander aussgeführt und tmux ist auch nur ein Befehl. Wenn dir tmux ein neues Terminal erzeugt, bleibt das Bash Script solange hängen bis das Terminal beendet wird. Der nächste Befehl wird erst danach ausgeführt und das im ursprünglichen Kontext und nicht in dem Terminal von tmux. Da musst du ggf. in die Dokumentation schauen, wie du beim erzeugen eines neuen Terminals mit tmux Befehle ausführen kannst.
              Oder du lässt es einfach bleiben mit tmux. Das was du da machst ist bullshit. Du startest die Server mit screen. Screen macht genau das selbe wie tmux. Der Unterscheid ist, mit Screen kenn ich mich aus. Ersetz in den Befehlen das -dm gegen -d und fertig. (m -> damit sagst du screen es soll nur solange lauf wie es den urspürnglichen Prozess/Terminal gibt... ohne m läuft screen unbegrenzt)
              Code:
              #!/bin/bash
              cd /home/mapadroid/OSM-Rocketmap && screen -S RM -d python3 runserver.py
              cd /home/mapadroid/PokeAlarm && screen -S PokeAlarm -d python start_pokealarm.py
              cd /home/mapadroid/MAD && screen -S MAD -d python3 start.py -wm -os

              Kommentar


              • #8
                wir lassen auf dem server 3 python scripte laufen über eine TMUX Session, damit die scripte weiter laufen sobal terminal geschlossen ist...
                was ja auch der einzige und adäquate weg ist; screen ändert nichts daran. mit verlaub erc

                das problem tritt aber nur bei cron oä auf, hast Du viele cron scripte mit tmux/screen ?

                Kommentar

                Lädt...
                X