Linux-Subsystem in Windows 10

Microsoft hatte auf ihrer kürzlich stattgefundenen Entwicklerkonferenz Build ein Linux-Subsystem für Windows 10 angekündigt und dieses mit der gerade veröffentlichen Insider-Preview (Build 14316) bereitgestellt. Das Subsystem ermöglicht  Weiterlesen


Schneller Shell Shock Test

Seit letzter Woche ist eine Sicherheitslücke in der bash unter dem Namen Shell Shock bekannt geworden. Angreifer können den Bug ausnutzen um schadhaften Code auszuführen. Betroffene Betriebssysteme sind Linux, Unix und OS X. Besonders Betreiber von Webservern sollten schleunigst überprüfen ob ihr System gefährdet ist. Weiterlesen


Hintergrundprozesse mit begrenzter Lebensdauer

Ein nützliches kleines Tool hat vor einiger Zeit in die GNU coreutils mit Version 7 Einzug gehalten und sollte damit auf den meisten Systemen automatisch vorhanden sein: timeout.

Es kommt im Alltag sehr häufig vor, dass man die Ausführungszeit eines Cronjobs oder anderen Prozesses nicht vorhersagen kann, aber limitieren möchte. In diesem Fall kann man den Prozess mit vorangestelltem timeout starten. Ein (sinnfreies) Beispiel:

> timeout -s USR1 -k 5 10 sleep 60
> echo $?
124
> timeout -s CONT -k 5 10 sleep 60
zsh: killed     timeout -s CONT -k 5 10 sleep 60
> echo $?
137

startet im Hintergrund einen 60 Sekunden schlafenden Prozess. Nach 10 Sekunden bekommt dieser das USR1 Signal (-s USR1) gesendet und beendet sich. Im zweiten Beispiel, wird CONT als Abbruchsignal geschickt, dass der Prozess ignoriert. Nach weiteren 5 Sekunden wird dann das KILL Signal geschickt (-k 5).

Man kann am Exitstatuscode des Prozesses festmachen, ob ein Fehler auftrat, der Prozess ausgetimed ist und das -s Signal bekam, oder (-k) getötet werden musste:

  • 124 Timeout und Beendigung durch das erste Signal
  • 125 Fehler in timeout selbst
  • 126 Das zu startende Programm existiert, kann aber nicht gestartet werden
  • 127 Das zu startende Programm kann nicht gefunden werden
  • 137 KILL musste gesendet werden

Die englische Dokumentation auf gnu.org.