ADMIN-Tipp: Screen für bereits laufende Prozesse

Jede Woche erscheint in unserem Newsletter ein neuer ADMIN-Tipp. Eine Sammlung aller Tipps finden Sie im Archiv der ADMIN-Tipps.

Für viele Administratoren ist das Screen-Kommando, das Terminalprogramme nach dem Ausloggen weiterlaufen lässt, unverzichtbar. Doch was tun, wenn der lang laufende Job schon gestartet ist? Ein kleines Tool bringt die Lösung.

Praktisch ist das Screen-Kommando, um einen laufenden Job zu starten, sich auszuloggen und später diese Terminalsession wieder aufzunehmen. Einen einfachen Weg dafür, sich mit Screen an ein existierendes Programm anzuhängen, gibt es aber nicht. Einen Ausweg bietet Reptyr von Nelson Elhage, das laufende Kommandozeilentools an neue Pseudo-Terminals (PTY) bindet. Allerdings muss man es aus dem Quellcode, den es unter https://github.com/nelhage/reptyr  gibt, selbst kompilieren. Ist das Tool installiert, lässt es sich einfach verwenden:

reptyr PID

wobei PID für die Prozess-ID des laufenden Prozesses steht. Um ein laufendes Programm also in einen Screen zu verfrachten, startet man erst mit "screen bash" einen neuen Screen und holt sich dann mit "reptyr PID" den Prozess.

Probleme können bei modernen Linux-Distributionen auftreten, die aus Sicherheitsgründen die  Fähigkeiten des Ptrace-Systemcalls beschränken, etwa Ubuntu Maverick und neuer. Hier hilft es, als Administrator Root kurzzeitig die Sperre auszuschalten:

echo 0 > /proc/sys/kernel/yama/ptrace_scope
10.07.2012

Ähnliche Artikel

  • ADMIN-Tipp: Screen mit Sudo

    Wer mit Sudo in einen anderen Benutzeraccount wechselt, kann typischerweise nicht mehr den Screen-Befehl verwenden, weil das Pseudoterminal-Device nicht verfügbar ist. Ein kleiner Hack stellt die Ordnung wieder her. 

  • ADMIN-Tipp: Fenster-Multiplexer

    Wer am Nachmittag auf Arbeit noch einen lang laufenden Job auf seinem  mitgebrachten Laptop startet, einen Benchmark wie iozone beispielsweise, der schießt sich schnell ins Knie: Der Prozess läuft weit in den Feierabend hinein, man kann aber den Rechner nicht abschalten und einpacken, ohne den Benchmark im Beispiel abzubrechen und viele Stunden bereits absolvierter Laufzeit zu verlieren. Doch es gibt einen Ausweg.
     

  • ADMIN-Tipp: Browser-Screenshots auf der Kommandozeile

    Mit einem Python-Skript und ein paar Modulen lassen sich leicht Screenshots von Webseiten auf der Kommandozeile erzeugen.

  • ADMIN-Tipp: Arbeitsverzeichnis herausfinden

    Etwa bei der Fehlersuche ist es oft nützlich zu wissen, in welchem Arbeitsverzeichnis beispielsweise ein Daemon gestartet wurde. Über das Proc-Filesystem von Linux lässt sich dies herausfinden.

  • ADMIN-Tipp: Nettigkeiten unter Linux

    Der Nice-Wert bestimmt die Priorität, mit der ein Linux-Prozess auf die CPU zugreift. Ionice erledigt das gleiche für Lese- und Schreibzugriffe auf Platten.

Comments

Alles aktuell

der Artikel ist nirgends "ausgegraben", sondern neu geschrieben. Die Informationen sind aktuell und die Angabe "Maverick und neuer" will sagen, dass dies mit der besagten Ubuntu-Version eingeführt wurde. Auf Ubuntu 12.04 ist auch die angesprochene Datei vorhanden:

$ ls -l /proc/sys/kernel/yama/ptrace_scope
-rw-r--r-- 1 root root 0 Jul  5 21:49 /proc/sys/kernel/yama/ptrace_scope
oliver@h2054857:~$ cat /proc/sys/kernel/yama/ptrace_scope
1

Ansonsten danke für den Hinweis, dass das Programm in der Distribution vorhanden ist, wusste ich nicht.

Olle Kamelle?

Ich weiß ja nicht, wo das ADMIN-Magazin diesen Artikel ausgegraben hat, denn

- das Programm gibts (zumindest unter Ubuntu 12.04) als Paket
- die genannte /proc/sys .. Zeile hab ich bei mir (Kernel 3.2) nicht gefunden, aber es hat auch so funktioniert
- Die genannte "Maveric" (10.10)  Distribution, die im Artikel genannt wird, ist fast zwei Jahre alt

Vielleicht das nächste Mal doch nochmal kurz drübergehen, ob alles noch stimmt .. ;-)

Doch prinzipiell ist es ein gute Tipp!

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023