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).