BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Prozess nach einer bestimmten Laufzeit beenden

Führt man ein Programm aus, welches unter gewissen Umständen blockiert, so kann die Ausführzeit des Programms mit Hilfe von timelimit beschränkt werden. Im FreeBSD Portbaum findet man timelimit unter sysutils/timelimit:

# cd /usr/ports/sysutils/timelimit && make install clean

Mit der -t Option kann festgelegt werden, nach wievielen Sekunden ein Warnsignal an den ausgeführten Prozess gesendet werden soll. Standardmässig wird dabei ein SIGTERM an den Prozess geschickt. Beendet sich der Prozess nicht, wird nach einer mittels der -T Option festgelegten Zeit ein weiteres Signal (standardmässig SIGKILL) an den Prozess gesendet:

# timelimit -t 1 -T 2 sleep 3
timelimit: sending warning signal 15
# timelimit -t 1 -T 2 ./ignoreSIGTERM
timelimit: sending warning signal 15
timelimit: sending kill signal 9

Die gesendeten Signale können mit der -s und der -S Option geändert werden. In diesem Beispiel wird als Warnsignal ein SIGUSER1 und als Killsignal ein SIGUSER2 gesendet:

# timelimit -s SIGUSR1 -S SIGUSR2 -t <Warnzeit> -T <Killzeit> <Befehl> <Argumente>

Mehr Informationen zu timelimit findet man in der Manpage timelimit(1).

 Permalink