Sie sind nicht angemeldet.

1

20.01.2011, 08:55

ssh/telnet Sitzung vor Aufgabenbeendigung verlassen

Oft bin ich per telnet oder ssh auf fremden Maschinen unterwegs.
Normalerweise beende ich die Sitzung erst dann, wenn alle Tasks vorbei sind.

Zitat

halt && exit

mache ich dann gerne, wenn ich zuhause auf meinem lappy war, damit er runterfährt und ssh sauber getrennt wird
Was aber muß ich ihm sagen, wenn ich zum Beispiel

Zitat

emerge -uDN world

mache und mich dann irgendwann entschließe, die Sitzung zu verlassen oder ein Netzabriss mir ne broken pipe liefert?
In solchen Fällen soll die Kiste ja dann weiter emergieren.
Wie kombiniere ich es dann, dass er erst das Weltupdate macht und danach herunter fährt, ich aber auch vorher die Möglichkeit habe, die Sitzung zu verlassen, ohne das der hang-up die Ausführung beendet?
System:
i7 P2600 @ 3,4GHz
jabber: poedel@jabber.ccc.de

2

20.01.2011, 14:33

wenn die Ausgabe nicht wichtig ist >>

Quellcode

1
2
nohup bash -c "emerge -uDN world --keep-going && halt" &> /root/emerge.log &
tail -f /root/emerge.log

Ich gehe von bash aus, müste aber so auch mit zsh funzen.
Zudem fährt die Kiste nur runter wenn emerge erfolgreich, also kein Fehler ausgerotzt hat.

have fun ^^

3

20.01.2011, 14:47

ah guck an.. das mit dem nohup kannte ich zwar, aber nicht, wie man es geschickt nutzt.
Wenn der schon am emergieren ist kann man aber nicht zwischendurch aussteigen.. könnte aber abbrechen, den Prozess --resume'n mit der nohup Aktion und dann flüchten.
Noch kurz zu den bashigen Tricks in dem Beispiel:
das & hinten bedeutet ja wohl, dass die Shell für weitere Befehle freigehalten wird.
Das > leitet die Ausgabe in die Datei, aber warum ist es hier &> ?
System:
i7 P2600 @ 3,4GHz
jabber: poedel@jabber.ccc.de

4

20.01.2011, 14:54


Das > leitet die Ausgabe in die Datei, aber warum ist es hier &> ?


das leitet stdin und stderr in die file /root/emerge.log,
ist halt die kurz form von 1> /root/emerge.log 2> /root/emerge.log

Zitat


Wenn der schon am emergieren ist kann man aber nicht zwischendurch aussteigen

Ja doch, dadurch das emerge mittels nohup in hintergrund gerückt wird kannste einfach ssh dann aus machen und den Fortschritt später wieder mit /root/emerge.log beobachten.

Alternativ kann ich dir auch nen script schreiben was dann gegen SIGTERM SIGHUP etc imun ist, blos das muste dann aufwendig auf jede Kiste kopieren wo du es benutzen willst.

5

20.01.2011, 17:59

Ich nutze für sowas app-misc/screen.
Damit kannst Du auch dich auf die laufende Session wieder aufschalten, sogar parallel von unterschiedlichen Clients aus.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

6

21.01.2011, 07:43

Hi,

da ich ja nach wie vor Neuling im bereich Linux bin wollte ich mal fragen wo der Unterschied bzw. eventuel der Vorteil liegt zwischen den varianten "Nohup" und "Screen"?

Wie Bell benutze ich ebenfalls Screen wenn ich per SSH auf einer Kiste drauf bin was mir ansich auch gefällt, aber interessieren würde mich die Frage dennoch!? Man lernt nie aus :D

Grüsse, Sven

7

21.01.2011, 09:46

Nohup ist auf jedem System drauf. Das ist der Vorteil. Der Prozess wird im Hintergrund gestartet und die Ausgabe geht in eine Datei.
Screen ist eine vollständige Terminal-Emulation. Du musst es erstmal installieren. Screen hat sehr viele Funktionen. Zb. mehrere Sessions, parallel-Zugriff auf die Console uvm.
Also beim Scripten: nohup,
im Dialog: screen.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

8

22.01.2011, 23:21

Ja, screen ist ne feine Sache, ist wie gemeinsames Arbeiten auf einem Terminal.

lg
boospy
Gentoo Can Do!

Wiki auf: http://deepdoc.at

9

22.01.2011, 23:57

Zusammen arbeiten, ja! Wenn ich jemanden per ssh unterstütze, lade ich ihn zu "screen -x" ein. Dann kann man sogar chatten. Mit "#" vorne als Kommentar.

Was mir am Screen noch gefällt: Wenn ein Programm eine Interaktion erwartet, wie zB. irgend wann auf Enter drücken, wählst Du dich ein, "screen -r" drückst Deinen Enter und gehst wieder raus.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

10

05.02.2011, 06:39

da fehlen mir wohl die Grundbegriffe zu screen, obwohl das auch eine recht tolle Sache ist!
Was ich da wissen müßte wären folgende Punkte:
1) Wie starte ich einen Vorgang in "einem Screen", also wie gehabt emerge -uDN world && halt
2) Wie verlasse ich den Screen? detach
3) Wie verbinde ich zu einem Screen?
4) Kann ich ggf. auch den Namen der aktiven Screens rausfinden?
System:
i7 P2600 @ 3,4GHz
jabber: poedel@jabber.ccc.de

11

05.02.2011, 07:19

1) Wie starte ich einen Vorgang in "einem Screen", also wie gehabt emerge -uDN world && halt

Quellcode

1
screen     # neue Session erzeugen und reingehen


2) Wie verlasse ich den Screen? detach
Einfach das Fenster schließen oder STRG-a + STRG-d

3) Wie verbinde ich zu einem Screen?

Quellcode

1
2
screen -r # in eine aktive Session reingehen
screen -x # in eine aktive Session reingehen, in der auch ein anderer User drin ist


4) Kann ich ggf. auch den Namen der aktiven Screens rausfinden?

Quellcode

1
screen -ls


Das alles steht in "man screen"
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

12

05.02.2011, 09:54

lieb von dir, mir eine man zu erstellen ;)
Sollte tatsöchlich ein manual mal wieder ausführlich sein ..
ich werde es mal versuchen!
System:
i7 P2600 @ 3,4GHz
jabber: poedel@jabber.ccc.de

13

23.03.2011, 11:20

klappt wunderhaft!
Danke!
nur eins geht nicht, oder ich habe zu d00f:

Quellcode

1
screen -t foositzung

wenn ich dann detache und mit

Quellcode

1
screen -ls

anzeigen lasse, steht der Titel nicht dabei, obwohl ich ihn explizit angegeben habe.
System:
i7 P2600 @ 3,4GHz
jabber: poedel@jabber.ccc.de

14

23.03.2011, 12:08

Einfach das Fenster schließen oder STRG-a + STRG-d


zu verlassen der Sitzung STRG-a drücken, dann loslassen und dann "d" drücken. Dann bist Du detached und kannst es mit screen -ls anzeigen lassen.

Viele Grüße

15

23.03.2011, 12:12

Versuche mal

Quellcode

1
screen -S foositzung
;)
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

16

23.03.2011, 12:28

so isset.. der Name der Socke.. Danke!
System:
i7 P2600 @ 3,4GHz
jabber: poedel@jabber.ccc.de

17

23.03.2011, 13:00

Denkst Du noch bitte an das Präfix? Oder ist noch eine Frage offen?
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.