NEWS
Linux-Spezialisten Frage bzgl. Bootskript
-
@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.
-
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/ -
@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
-
@liv-in-sky Damit kann man eine Tastatur simulieren um zum bsp. Passwörter remote eingeben zu können bevor der Rechner bootet.
-
@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
-
@arteck sagte in Linux Spezialistenfrage..:
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? -
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 gesehenPiW 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.
-
@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. -
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
-
@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.
-
@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.