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
Ä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
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.wikibot
1 +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 -** eine selbstbenannte Sitzung (hier sitzung1) durch folgende Befehlseingabe {{{
57 - nice -n 19 screen -S sitzung1
58 -}}}
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 sitzung1
71 -}}}
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\" ist
102 +** 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 anzeigen
109 +* 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 -