programme nach beendigung von putty weiterlaufen lassen?
-
- Beiträge: 134
- Registriert: 10.08.2005 02:54:33
- Lizenz eigener Beiträge: GNU General Public License
programme nach beendigung von putty weiterlaufen lassen?
Hallo,
Ich frage mich schon seit einer ganzen Weile, wie man gestartete Programme (in einer putty-session) weiterlaufen lassen kann, wenn die putty-session beendet ist (vgl. RDP auf einen Windows-Server, wenn der RDP-Client einfach nur geschlossen wird).
Ist das überhaupt möglich? Falls nein, gibt es einen anderen Weg, so etwas zu bewerkstelligen?
Beste Grüße
Johannes
Ich frage mich schon seit einer ganzen Weile, wie man gestartete Programme (in einer putty-session) weiterlaufen lassen kann, wenn die putty-session beendet ist (vgl. RDP auf einen Windows-Server, wenn der RDP-Client einfach nur geschlossen wird).
Ist das überhaupt möglich? Falls nein, gibt es einen anderen Weg, so etwas zu bewerkstelligen?
Beste Grüße
Johannes
Re: programme nach beendigung von putty weiterlaufen lassen?
Für Terminal-Programme könntest du z.B.joshi hat geschrieben:Ist das überhaupt möglich?
![Debian](/pics/debianpackage.png)
Siehe dazu auch:
http://wiki.ubuntuusers.de/Screen
Gruß,
Daniel
-
- Beiträge: 134
- Registriert: 10.08.2005 02:54:33
- Lizenz eigener Beiträge: GNU General Public License
Re: programme nach beendigung von putty weiterlaufen lassen?
Danke für die Tips. Zu screen hab ich noch eine kleine Frage:
Im Link steht:
Wenn ich z.B.: große Files via wget ziehe, wäre das nat. von Nachteil.
LG
Johannes
Im Link steht:
Heißt das, dass die Sitzung suspendet wird?Darüberhinaus können Sitzungen getrennt und später fortgeführt werden.
Wenn ich z.B.: große Files via wget ziehe, wäre das nat. von Nachteil.
LG
Johannes
Re: programme nach beendigung von putty weiterlaufen lassen?
Die Programme innerhalb screen laufen weiter, also in deinem Beispiel lädt wget weiter die Datei.
MfG GoKi
:wq
:wq
-
- Beiträge: 3800
- Registriert: 26.02.2009 14:35:56
Re: programme nach beendigung von putty weiterlaufen lassen?
nohup sollte auch funktionieren, so man keinen reconnect an die Sitzung
benötigt...
benötigt...
Re: programme nach beendigung von putty weiterlaufen lassen?
jo, nohup ist ein Klassiker - vergiss das & am Ende nicht, um den Prozess auch wirklich in den Hintergrund zu schicken. Ein logfile wird auch geschrieben. Für wget-Downloads reicht es allemal.
Re: programme nach beendigung von putty weiterlaufen lassen?
Seitdem ich vor einigen Jahren "screen" als das beste UNIX-Programm für mich entdeckt habe, nutze ich es standardmäßig auf allen Servern. Vorteil ist im übrigen, dass man nur einen Putty-Aufruf pro Server auch bei mehreren Fenstern benötigt. Sitzungen lasse ich per Default immer weiterlaufen, kosten sowieso kaum CPU.
Aufruf meist automatisiert (~/.bash_profile), bei einigen Systemen manuell:
Zum Erkennen von Screen-Sitzungen nutze ich folgende Statuszeile (~/.screenrc):
Folgende Befehle kenne ich noch:
Gibt im übrigen noch ein paar andere nette Spielereien wie Split-Screen. Vor allem kann man aber durch Multi-Terminals um einiges schneller arbeiten.
Aufruf meist automatisiert (~/.bash_profile), bei einigen Systemen manuell:
Code: Alles auswählen
/usr/bin/screen -xRR
Code: Alles auswählen
hardstatus alwayslastline '[%H] %Lw%=%u %d.%m.%y %c '
Code: Alles auswählen
CTRL a + c: neues Terminal
CTRL a + n: nächstes Terminal
CTRL a + d: Screen detachen (alternativ Putty schließen)
exit: virtuelles Terminal beenden
screen -xRR: Screen reattachen bzw. neu erstellen (außerhalb von Screen)
Re: programme nach beendigung von putty weiterlaufen lassen?
Dann hab ich auch noch einige Tipps zu screen:
htop in einem screen im Hintergrund ('detached') starten
screen -d -S "htop-session" -m htop
Eine session teilen:
--------------------
terminal a connected und gibt ein:
screen bash
STRG+a :multiuser on
terminal b connected mit screen -x und beide arbeiten zusammen![Smile :)](./images/smilies/icon_smile.gif)
alle verfügbaren Screens anzeigen
screen -list
Eine Session mit Namen "bash Sitzung" im Hintergrund starten:
screen -d -S "bash Sitzung" -m bash
Und nun in dieser Session einen Befehl ausführen:
screen -S "bash Sitzung" -X exec echo "Es geht"
Ich nutze screen aber trotzdem nur für lang laufende tasks. Im Normalfall reicht mir gnome-terminal und da drinnen mehrere tabs
htop in einem screen im Hintergrund ('detached') starten
screen -d -S "htop-session" -m htop
Eine session teilen:
--------------------
terminal a connected und gibt ein:
screen bash
STRG+a :multiuser on
terminal b connected mit screen -x und beide arbeiten zusammen
![Smile :)](./images/smilies/icon_smile.gif)
alle verfügbaren Screens anzeigen
screen -list
Eine Session mit Namen "bash Sitzung" im Hintergrund starten:
screen -d -S "bash Sitzung" -m bash
Und nun in dieser Session einen Befehl ausführen:
screen -S "bash Sitzung" -X exec echo "Es geht"
Ich nutze screen aber trotzdem nur für lang laufende tasks. Im Normalfall reicht mir gnome-terminal und da drinnen mehrere tabs
Re: programme nach beendigung von putty weiterlaufen lassen?
Ok, hier nun meine ultimative SSH-Fernwartungslösung mit Screen (eine Art Multiuser mit einem Benutzer):
- Anlegen Benutzer mit Shell /usr/local/bin/restricted in /etc/passwd:
/usr/local/bin/restricted:
Diese Screen-Sitzung wird nun als Sprungbrett zur SSH-Fernwartung irgendwo hin benutzt. Sehr cool mit Aufruf vom Fernzuwartenden mit Remote-Port-Forwarding-Option. Funktioniert dann auch hinter Routern und ohne Port-Weiterleitungen, Dyndns usw. beim Fernzuwartenden.
- Anlegen Benutzer mit Shell /usr/local/bin/restricted in /etc/passwd:
/usr/local/bin/restricted:
Code: Alles auswählen
#!/bin/sh
if [ -z $STY ]; then
/usr/bin/screen -xRR;
else
/usr/bin/screen -X hardstatus alwayslastline '[%H] %Lw%=%u %d.%m.%y %c '
befehl="/bin/rm $HOME/.ssh/known_hosts ";
$befehl 2> /dev/null;
echo -n "ssh "
read eingabe;
befehl="/usr/bin/ssh $eingabe";
$befehl;
fi