Änderungen von Dokument Programme so ausführen, dass sie beim Logout nicht beendet werden
Zuletzt geändert von Aysegül Omus am 2025/01/31 12:25
Von Version 8.1
bearbeitet von Ana Villalobos González
am 2023/03/01 12:31
am 2023/03/01 12:31
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (2 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Dokument-Autor
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. villalob1 +XWiki.wikibot - Inhalt
-
... ... @@ -12,14 +12,11 @@ 12 12 13 13 Möchte man im Rahmen seines Studiums mal ein rechenintensives Program beispielsweise über die Nacht laufen lassen, so ist es grundsätzlich problemlos möglich, sofern man die folgenden Punkte beachtet: 14 14 15 -* um sich mit der lxhalle per SSH zu verbinden muss die unten stehende Zeile mit Ihrem in.tum-Login (Informatik/RBG-Login) ins Terminalfenster eingegeben werden - Windows Benutzer finden [[hier>>https://xwiki.rbg.tum.de/bin/view/Informatik/Helpdesk/Ssh_mit_PuTTY]] ein HowTo, um sich das Programm PuTTY einzurichten, mit dem ssh Verbindungen per Terminalfenster möglich werden. 15 + um sich mit der lxhalle per SSH zu verbinden muss die unten stehende Zeile mit Ihrem in.tum-Login (Informatik/RBG-Login) ins Terminalfenster eingegeben werden - Windows Benutzer finden [[hier>>https://xwiki.rbg.tum.de/bin/view/Informatik/Helpdesk/Ssh_mit_PuTTY]] ein !HowTo, um sich das Programm !PuTTY einzurichten, mit dem ssh Verbindungen per Terminalfenster möglich werden. {{{ 16 +ssh RBG-Kennung@lxhalle.in.tum.de 17 +}}} 18 +* damit die Programme die Arbeit anderer Rechnerbenutzer nicht behindern, sollten sie mit einer niedrigen scheduling-Priorität gestartet werden - dies wird durch den Aufruf von \"nice -n 19\", wie bei den Beispielen in diesem !HowTo erreicht 16 16 17 -{{code language="none"}} 18 -ssh RBG-Kennung@lxhalle.in.tum.de 19 -{{/code}} 20 - 21 -* damit die Programme die Arbeit anderer Rechnerbenutzer nicht behindern, sollten sie mit einer niedrigen scheduling-Priorität gestartet werden - dies wird durch den Aufruf von "nice -n 19", wie bei den Beispielen in diesem HowTo erreicht 22 - 23 23 {{html wiki="true"}} 24 24 <hr /> 25 25 {{/html}} ... ... @@ -27,29 +27,23 @@ 27 27 28 28 == 2. Beispielskript == 29 29 30 -Um die Funktionalität der hier Vorgestellten Methoden zu demonstrieren, wurde ein kleines Shell-Skript {{codelanguage="none"}}test.sh{{/code}}geschrieben, welches nichts anderes tut, als jede Sekunde die aktuelle Uhrzeit + Datum in die Datei{{codelanguage="none"}}datum.txt{{/code}}zu schreiben. Dieses Skript symbolisiert ein beliebiges Programm, welches auf der Konsole laufen könnte. Das Skript besteht aus folgenden Zeilen:27 +Um die Funktionalität der hier Vorgestellten Methoden zu demonstrieren, wurde ein kleines Shell-Skript ##test.sh## geschrieben, welches nichts anderes tut, als jede Sekunde die aktuelle Uhrzeit + Datum in die Datei ##datum.txt## zu schreiben. Dieses Skript symbolisiert ein beliebiges Programm, welches auf der Konsole laufen könnte. Das Skript besteht aus folgenden Zeilen: 31 31 32 -{{code language="none"}} 33 -#!/bin/bash while true do sleep 1 date done >> datum.txt 34 -{{/code}} 35 - 29 +%CODE{ lang=\"bash\" }% #!/bin/bash while true do sleep 1 date done >> datum.txt%ENDCODE% 36 36 ---- 37 37 38 -{{id name="NohupAnchor"/}} 39 - 32 +{{id name="NohupAnchor" /}} 40 40 == 3. nohup == 41 41 42 42 Wird ein Programm mit dem nohup Befehl gestartet, so ignoriert es dann das HUP-Signal, welches beim Ausloggen gesendet wird. Dadurch läuft das Programm weiter, auch wenn sich der Benutzer, der es gestartet hat, bereits ausgeloggt hat. 43 - 44 -* durch die Eingabe von {{code language="none"}}nice -n 19 nohup ./test.sh & {{/code}}wird das Test-Skript gestartet und von der Konsole entbunden (durch ##&##) 45 -* ab jetzt wird das Datum in die Datei {{code language="none"}}datum.txt{{/code}} geschrieben, auch nachdem man sich ausgeloggt hat 46 -* nach dem Ausführen von {{code language="none"}}nohup{{/code}} wird uns zusätzlich die PID des erzeugten Prozesses mitgeteilt, was nützlich sein kann, um das Programm (falls es nicht von alleine terminiert) mit der {{code language="none"}}kill PID{{/code}} Anweisung zu beenden 36 +* durch die Eingabe von {{{ 37 +nice -n 19 nohup ./test.sh & 38 +}}} wird das Test-Skript gestartet und von der Konsole entbunden (durch ##&##) 39 +* ab jetzt wird das Datum in die Datei ##datum.txt## geschrieben, auch nachdem man sich ausgeloggt hat 40 +* nach dem Ausführen von ##nohup## wird uns zusätzlich die PID des erzeugten Prozesses mitgeteilt, was nützlich sein kann, um das Programm (falls es nicht von alleine terminiert) mit der ##kill PID## Anweisung zu beenden 47 47 * jetzt kann im Terminalfenster weiter gearbeitet werden - das Terminal kann natürlich auch geschlossen werden, ohne das das Programm beendet wird 48 -* loggt man sich aus und wieder ein, kann man überprüfen, ob in die Datei {{code language="none"}}datum.txt{{/code}} weiterhin geschrieben wird 49 - 50 - 51 -* [[image:https://xwiki.rbg.tum.de/bin/download/Informatik/Helpdesk/ProgrammeBeimLogoutNichtBeenden/WebHome/nohupTest.png]] 52 - 42 +* loggt man sich aus und wieder ein, kann man überprüfen, ob in die Datei ##datum.txt## weiterhin geschrieben wird 43 +[[image:https://xwiki.rbg.tum.de/bin/download/Informatik/Helpdesk/ProgrammeBeimLogoutNichtBeenden/WebHome/nohupTest.png|| alt=""]] 53 53 ---- 54 54 55 55 == 4. screen == ... ... @@ -58,55 +58,56 @@ 58 58 59 59 60 60 Zunächst werden einige grundlegenden Steuerungsbefehle vorgestellt: 61 - 62 -* screen starten:63 - **{{{}}}{{code language="none"}}nice -n 19 screen{{/code}}64 - ** eine selbstbenannte Sitzung (hier sitzung1) durch folgende Befehlseingabe65 -** {{code language="none"}}nice-n19 screen-Ssitzung1{{/code}}66 - 67 - 52 +* screen starten: 53 +** {{{ 54 + nice -n 19 screen 55 +}}} 56 +** eine selbstbenannte Sitzung (hier sitzung1) durch folgende Befehlseingabe {{{ 57 + nice -n 19 screen -S sitzung1 58 +}}} 68 68 * es werden zwar am Anfang einige Informationen über das Programm angezeigt, nachdem man jedoch die Leertaste betätigt schaut die Konsole unverändert aus - man hat nun eine screen-Sitzung gestartet und befindet sich in der ersten virtuellen Konsole 69 - 70 - 71 -* eine weitere virtuelle Konsole starten 60 +* eine weitere virtuelle Konsole starten 72 72 ** ##Strg## + ##A## und dann ##C## 73 - 74 -* eine virtuelle Konsole schließen 62 +* eine virtuelle Konsole schließen 75 75 ** ##Strg## + ##A## und dann ##K## 76 -* zwischen den virtuellen Konsolen wechseln: 64 +* zwischen den virtuellen Konsolen wechseln: 77 77 ** ##Strg## + ##A## und dann ##Leertaste## 78 78 ** ##Strg## + ##A## und dann Zahl zw. 0 und 9 (für die entsprechende Konsole) 79 -* Verbindung zur aktuellen Sitzung lösen (deattach): 67 +* Verbindung zur aktuellen Sitzung lösen (deattach): 80 80 ** ##Strg## + ##A## und dann ##D## 81 -** für eine bestimmte Sitzung (hier sitzung1) :{{code language="none"}}screen -d sitzung1{{/code}}82 - 83 - 84 -* Verbindung zu einer Sitzung wiederaufnehmen (hier sitzung1) 85 -** {{code language="none"}}screen -r sitzung1{{/code}}86 -* Sitzung beenden 69 +** für eine bestimmte Sitzung (hier sitzung1) {{{ 70 + screen -d sitzung1 71 +}}} 72 +* Verbindung zu einer Sitzung wiederaufnehmen (hier sitzung1) 73 +** screen -r sitzung1 74 +* Sitzung beenden 87 87 ** ##Strg## + ##D## 88 -** {{code language="none"}}exit{{/code}} 76 +** {{{ 77 + exit 78 +}}} 89 89 ** die letzte virtuelle Konsole schließen 90 -* alle laufenden Sitzungen mit ihren Namen anzeigen (im Bild z.B: 6561) 91 - **{{code language="none"}}screen -ls{{/code}}92 - **93 - **[[image:https://xwiki.rbg.tum.de/bin/download/Informatik/Helpdesk/ProgrammeBeimLogoutNichtBeenden/WebHome/screen.jpg]]94 -* alle Tastaturbefehle anzeigen 80 +* alle laufenden Sitzungen mit ihren Namen anzeigen (im Bild z.B: 6561) {{{ 81 + screen -ls 82 +}}} 83 +[[image:https://xwiki.rbg.tum.de/bin/download/Informatik/Helpdesk/ProgrammeBeimLogoutNichtBeenden/WebHome/screen.jpg|| alt=""]] 84 +* alle Tastaturbefehle anzeigen 95 95 ** ##Strg## + ##A## und dann ##?## eingeben 96 -* für die vollständige Dokumentation des screen-Befehls möchte ich auf die manpages verweisen: {{code language="none"}}man screen{{/code}} 86 +* für die vollständige Dokumentation des screen-Befehls möchte ich auf die manpages verweisen {{{ 87 + man screen 88 +}}} 97 97 98 - Vorgehen bei Benutzung von screen (Befehle siehe oben): 99 99 100 -* Programme starten 91 + Vorgehen bei Benutzung von screen (Befehle siehe oben): 92 +* Programme starten 101 101 ** Terminalfenster aufrufen 102 -** screen starten - dadurch ist man automatisch in einer Sitzung, die "Attached" ist 94 +** screen starten - dadurch ist man automatisch in einer Sitzung, die \"Attached\" ist 103 103 ** Programm ausführen 104 104 ** gegebenfals neue Konsolen und Programe starten 105 105 ** die Verbindung zur aktuellen Sitzung lösen 106 106 ** Terminalfenster schließen 107 -* Programme beenden 99 +* Programme beenden 108 108 ** Terminalfenster aufrufen 109 -* alle laufenden screen-Sitzungen anzeigen 101 +** alle laufenden screen-Sitzungen anzeigen 110 110 ** die gewünschen Sitzungen wiederaufnehmen 111 111 ** die Programme in den Virtuellen Konsolen beenden (falls sie nicht von selbst terminieren) 112 112 ** die virtuellen Konsolen schließen bzw. die Sitzung beenden ... ... @@ -115,3 +115,5 @@ 115 115 {{html wiki="true"}} 116 116 <hr /> 117 117 {{/html}} 110 + 111 +