Wie kann ich einen Script oder Befehl unter Linux im Hintergrund ausführen lassen (SSH schließen ==> Script/Befehl läuft weiter)?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
Woher ich das weiß:Hobby – Linux-Nutzer seit 2006

Minihawk  07.07.2015, 23:11

Der screen-Befehl. Nicht einfach zu durchblicken, aber sehr mächtig. Ist insabesondere bei längeren Installationen über SSH zu empfehlen, wenn die Verbindung schon mal abrechen möchte ...

1

Hallo

Aber wie kann ich diesen weiterlaufen lassen wenn ich SSH schließe.

Das Kommando dafür lautet screen und Eine Beschreibung davon findest Du mit diesem Abfragebefehl:

man screen


Ein Aufruf könnte zum Beispiel so aussehen:

screen -S SERVER ./start.sh

Dadurch wird das Script als Session behandelt und man kann auf dem Terminal weiterarbeiten bzw. sich vom Server abmelden.

Der Aufbau der Syntax ist, hier beispielhaft erklärt, folgender:

Aufruf Parameter Sessionname Programmname Parameter und Optionen ------------------------------------------------------------------------------- screen -S Minecraft java -jar craftbukkit.jar screen -S Editor nano dateiname.txt screen -S Editor2 nano 

Der Sessionname ist frei wählbar und kann auch weggelassen werden.

Möchte man nun zu einem späteren Zeitpunkt wieder nachsehen was mit der Screen-Session los ist, dann gibt man folgendes Kommando ein:

screen -ls # Das listet alle laufenden Sessions auf

Das sieht dann so aus:

There is a screen on: 1889.Editor (Detached) 1 Socket in /var/run/uscreens/S-linuxhase.

Eine weitere Session geht mit:

screen -mdS Editor2 nano dateiname.txt

Das Ergebnis sieht bei Abfrage dann so aus:

screen -ls There are screens on: 2033.Editor2 (Detached) 1889.Editor (Detached) 2 Sockets in /var/run/uscreens/S-linuxhase.

Mit diesem Befehl kommst Du in die Screen-Sitzung der Session um das Programm zu beobachten oder zu administrieren.:

screen -x "java" # oder alternativ die Session-ID

Um aus der Session heraus zu kommen ohne die Session zu schließen, müssen die Tasten STRG+A+D gleichzeitig gedrückt werden.

Wenn Du screen beenden willst geht das so:

screen -r Sessionname/Nummer -X quit

Du kannst so viele Sessions laufen haben wie Du RAM zur Verfügung hast und kannst die Sessions natürlich auch einzeln schließen, umbenennen oder zwischen den einzelnen Sessions wechseln. Alles Weitere entnimmst Du bitte der Manpage oder benutzt mal eine Suchmaschine Deiner Wahl.

Linuxhase

Woher ich das weiß:eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102

Mach z.b. screen session. Es gibt x anleitungen eigentlich

Mach am besten screen -S server ./start.sh und dann später wenn du wieder darauf zugreifen möchtest einfach ´screen -r server wobei man server durch irgendein namen ersetzen kann

MfG Jniklas

Woher ich das weiß:Studium / Ausbildung – Ausbildung als FiSi