Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Linux-Spezialisten Frage bzgl. Bootskript

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Linux-Spezialisten Frage bzgl. Bootskript

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      JoergH last edited by JoergH

      Moin zusammen,

      ich habe mir einen PI ZeroW als ein USB Tastatur Device eingerichtet, welches mir ermöglicht per Webseitenserver Tastaturkommandos zum Rechner zu senden. Das ganze läuft über python3.
      Wenn ich das per SSH Konsole starte, dann funktioniert es wunderbar. Beende ich allerdings die SSH Konsole, dann beendet er auch immer den Server.

      Ich würde nun gerne den Server automatisch beim Booten starten lassen. Da ich mich schlecht mit Linux auskenne und mit python quasi garnicht, bräuchte ich mal Hilfe.

      Folgendes an Befehlen soll also analog als Bootskript ausgeführt werden:

      cd key-mime-pi
      python3 -m venv venv
      . venv/bin/activate
      pip install --requirement requirements.txt
      PORT=8000 ./app/main.py
      

      Wie kann ich das machen?

      Thomas Braun arteck liv-in-sky OliverIO BananaJoe 5 Replies Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active @JoergH last edited by

        @joergh sagte in Linux Spezialistenfrage..:

        Beende ich allerdings die SSH Konsole, dann beendet er auch immer den Server.

        Es gibt den Befehl 'screen', damit kann man Programme im Hintergrund weiterlaufen lassen. Überlebt dann auch ein log out.

        J 1 Reply Last reply Reply Quote 0
        • arteck
          arteck Developer Most Active @JoergH last edited by

          @joergh

          ein bash script anlegen mit

          apt install screen

          #!/bin/bash
          cd key-mime-pi
          python3 -m venv venv
          . venv/bin/activate
          pip install --requirement requirements.txt
          PORT=8000 ./app/main.py
          

          dann im screen aufrufen

          hier mal was zum lesen
          https://wiki.ubuntuusers.de/Screen/

          J 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @JoergH last edited by

            @joergh sagte in Linux-Spezialisten Frage bzgl. Bootskript:

            PI ZeroW als ein USB Tastatur Device

            nur , weil es mich interessiert - warum ??? was bringt das bzw für welchen einsatz benötigt man das

            J 1 Reply Last reply Reply Quote 0
            • J
              JoergH @liv-in-sky last edited by

              @liv-in-sky Damit kann man eine Tastatur simulieren um zum bsp. Passwörter remote eingeben zu können bevor der Rechner bootet.

              1 Reply Last reply Reply Quote 1
              • J
                JoergH @Thomas Braun last edited by

                @thomas-braun sagte in Linux Spezialistenfrage..:

                @joergh sagte in Linux Spezialistenfrage..:

                Beende ich allerdings die SSH Konsole, dann beendet er auch immer den Server.

                Es gibt den Befehl 'screen', damit kann man Programme im Hintergrund weiterlaufen lassen. Überlebt dann auch ein log out.

                Danke! Das funktioniert zumindest schon mal wenn ich den Server in einer Sitzung starte und dann das Fenster schliesse 👍

                1 Reply Last reply Reply Quote 0
                • J
                  JoergH @arteck last edited by JoergH

                  @arteck sagte in Linux Spezialistenfrage..:

                  @joergh

                  ein bash script anlegen mit

                  apt install screen

                  #!/bin/bash
                  cd key-mime-pi
                  python3 -m venv venv
                  . venv/bin/activate
                  pip install --requirement requirements.txt
                  PORT=8000 ./app/main.py
                  

                  dann im screen aufrufen

                  hier mal was zum lesen
                  https://wiki.ubuntuusers.de/Screen/

                  Danke. Das habe ich mal durchgelesen und versucht alles zu verstehen. Im Wesentlichen bilde ich mir ein habe ich es kapiert. Was das Skript angeht, so stellt sich mir die Frage wo ich das dann ablege...Ich hatte es zuvor in /etc/init.d versucht, damit es beim Start automatisch gestartet wird.
                  Jetzt wäre es ja wohl so, dass ich beim Hochfahren automatisch erst einmal eine Sitzung starten und dann in dieser Sitzung das bashfile ausführen müsste, korrekt?

                  1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @JoergH last edited by OliverIO

                    @joergh

                    Der korrekte Weg sofern du systemd als Boot System hast wäre das.

                    https://www.thomaschristlieb.de/ein-python-script-mit-systemd-als-daemon-systemd-tut-garnicht-weh/

                    Wenn du etwas anderes wie systemd hast sag uns was bzw welch distribution du hast.
                    Du erkennst es daran das du in diesem Verzeichnis noch mehrere Service Dateien sich befinden
                    Ah jetzt erst gesehen

                    PiW müsste systemd sein.
                    Und das oben ist ein bash Script
                    Wenn du bei Google nach systemd bash service suchst findest du eine andere Beschreibung das Prinzip bleibt gleich

                    @Thomas-Braun diese Art der Vorschläge bin ich von dir nicht gewohnt.

                    Thomas Braun 1 Reply Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @OliverIO last edited by Thomas Braun

                      @oliverio sagte in Linux-Spezialisten Frage bzgl. Bootskript:

                      @Thomas-Braun diese Art der Vorschläge bin ich von dir nicht gewohnt.

                      Wie meinen?
                      Start als Dienst hängt halt vom init-Verfahren ab. Kann ich also nix zu sagen, wie das bei einer unbekannten Distribution abläuft.

                      OliverIO 1 Reply Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @Thomas Braun last edited by OliverIO

                        @thomas-braun

                        screen ist nur dafür gedacht einen prozess in den hintergrund zu senden während man parallel noch andere dinge macht.
                        aber nicht dazu einen daemon oder dienst zu starten.

                        das sollte tatsächlich, je nach boot-system (SysV, Upstart or Systemd) geschehen.
                        Wenn es ein Pi ist und mit Raspian läuft dann müsste es systemd (am Anfang war es allerdings SysV) sein.

                        Aber aufpassen, nicht das er sein Dienst in runlevel 5 startet😊

                        Thomas Braun 1 Reply Last reply Reply Quote 1
                        • Thomas Braun
                          Thomas Braun Most Active @OliverIO last edited by Thomas Braun

                          @oliverio sagte in Linux-Spezialisten Frage bzgl. Bootskript:

                          aber nicht dazu einen daemon oder dienst zu starten.

                          Hab ich doch aber auch gar nicht behauptet.

                          Screen ist halt das Ding was man verwenden kann, wenn man das Problem hat:

                          Beende ich allerdings die SSH Konsole, dann beendet er auch immer den Server.

                          1 Reply Last reply Reply Quote 0
                          • BananaJoe
                            BananaJoe Most Active @JoergH last edited by

                            @joergh musst du die ganzen befehle wirklich jedes mal beim Start ausführen? Normalerweise erkennt er doch die Umgebung wenn du das Skript aus dem Verzeichnis startest.

                            Ich habe mal ein Python-Skript gebaut gehabt welches ich per URL aufrufen konnte und das dann den übergebenen Key und Wert an Zabbix gesendet hat, das habe ich hier mal beschrieben:

                            https://znil.net/index.php?title=Zabbix_sender_per_Web_URL-Aufruf_nutzen

                            Da starte ich den Server innerhalb des Skriptes - was du in Zeile 5 wohl auch machst, nur das du den Wert als Variable übergibst.

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            639
                            Online

                            31.7k
                            Users

                            79.8k
                            Topics

                            1.3m
                            Posts

                            6
                            12
                            475
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo