Ä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 7.1
bearbeitet von wikibot
am 2023/02/13 19:40
am 2023/02/13 19:40
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf 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. wikibot1 +XWiki.villalob - Inhalt
-
... ... @@ -12,11 +12,14 @@ 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. {{{ 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 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. 19 19 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 + 20 20 {{html wiki="true"}} 21 21 <hr /> 22 22 {{/html}} ... ... @@ -24,23 +24,29 @@ 24 24 25 25 == 2. Beispielskript == 26 26 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:30 +Um die Funktionalität der hier Vorgestellten Methoden zu demonstrieren, wurde ein kleines Shell-Skript {{code language="none"}}test.sh{{/code}} geschrieben, welches nichts anderes tut, als jede Sekunde die aktuelle Uhrzeit + Datum in die Datei {{code language="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: 28 28 29 -%CODE{ lang=\"bash\" }% #!/bin/bash while true do sleep 1 date done >> datum.txt%ENDCODE% 32 +{{code language="none"}} 33 +#!/bin/bash while true do sleep 1 date done >> datum.txt 34 +{{/code}} 35 + 30 30 ---- 31 31 32 -{{id name="NohupAnchor" /}} 38 +{{id name="NohupAnchor"/}} 39 + 33 33 == 3. nohup == 34 34 35 35 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. 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 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 41 41 * jetzt kann im Terminalfenster weiter gearbeitet werden - das Terminal kann natürlich auch geschlossen werden, ohne das das Programm beendet wird 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=""]] 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 + 44 44 ---- 45 45 46 46 == 4. screen == ... ... @@ -49,56 +49,55 @@ 49 49 50 50 51 51 Zunächst werden einige grundlegenden Steuerungsbefehle vorgestellt: 52 - * screen starten:53 -* *{{{54 - nice -n 19 screen 55 - }}}56 -** e ineselbstbenannteSitzung (hiersitzung1)durch folgendeBefehlseingabe{{{57 - nice -n 19 screen -S sitzung158 - }}}61 + 62 +* screen starten: 63 +** {{{}}}{{code language="none"}}nice -n 19 screen {{/code}} 64 +** eine selbstbenannte Sitzung (hier sitzung1) durch folgende Befehlseingabe 65 +** {{code language="none"}}nice -n 19 screen -S sitzung1{{/code}} 66 + 67 + 59 59 * 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 60 -* eine weitere virtuelle Konsole starten 69 + 70 + 71 +* eine weitere virtuelle Konsole starten 61 61 ** ##Strg## + ##A## und dann ##C## 62 -* eine virtuelle Konsole schließen 73 + 74 +* eine virtuelle Konsole schließen 63 63 ** ##Strg## + ##A## und dann ##K## 64 -* zwischen den virtuellen Konsolen wechseln: 76 +* zwischen den virtuellen Konsolen wechseln: 65 65 ** ##Strg## + ##A## und dann ##Leertaste## 66 66 ** ##Strg## + ##A## und dann Zahl zw. 0 und 9 (für die entsprechende Konsole) 67 -* Verbindung zur aktuellen Sitzung lösen (deattach): 79 +* Verbindung zur aktuellen Sitzung lösen (deattach): 68 68 ** ##Strg## + ##A## und dann ##D## 69 -** für eine bestimmte Sitzung (hier sitzung1) {{{ 70 - screen -d sitzung171 - }}}72 -* Verbindung zu einer Sitzung wiederaufnehmen (hier sitzung1) 73 -** screen -r sitzung1 74 -* Sitzung beenden 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 75 75 ** ##Strg## + ##D## 76 -** {{{ 77 - exit 78 -}}} 88 +** {{code language="none"}}exit{{/code}} 79 79 ** die letzte virtuelle Konsole schließen 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 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 85 85 ** ##Strg## + ##A## und dann ##?## eingeben 86 -* für die vollständige Dokumentation des screen-Befehls möchte ich auf die manpages verweisen {{{ 87 - man screen 88 -}}} 96 +* für die vollständige Dokumentation des screen-Befehls möchte ich auf die manpages verweisen: {{code language="none"}}man screen{{/code}} 89 89 90 - 91 91 Vorgehen bei Benutzung von screen (Befehle siehe oben): 92 -* Programme starten 99 + 100 +* Programme starten 93 93 ** Terminalfenster aufrufen 94 -** screen starten - dadurch ist man automatisch in einer Sitzung, die \"Attached\" ist102 +** screen starten - dadurch ist man automatisch in einer Sitzung, die "Attached" ist 95 95 ** Programm ausführen 96 96 ** gegebenfals neue Konsolen und Programe starten 97 97 ** die Verbindung zur aktuellen Sitzung lösen 98 98 ** Terminalfenster schließen 99 -* Programme beenden 107 +* Programme beenden 100 100 ** Terminalfenster aufrufen 101 -* *alle laufenden screen-Sitzungen anzeigen109 +* alle laufenden screen-Sitzungen anzeigen 102 102 ** die gewünschen Sitzungen wiederaufnehmen 103 103 ** die Programme in den Virtuellen Konsolen beenden (falls sie nicht von selbst terminieren) 104 104 ** die virtuellen Konsolen schließen bzw. die Sitzung beenden ... ... @@ -107,5 +107,3 @@ 107 107 {{html wiki="true"}} 108 108 <hr /> 109 109 {{/html}} 110 - 111 -