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
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 7.1
bearbeitet von wikibot
am 2023/02/13 19:40
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.villalob
1 +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 {{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:
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 Befehlseingabe
65 -** {{code language="none"}}nice -n 19 screen -S sitzung1{{/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 +