Uruchom polecenie na określony czas, a następnie przerwij, jeśli czas przekroczy


47

Chcę wiedzieć, jak mogę uruchomić polecenie na określony czas, powiedzmy, jedną minutę, a jeśli to nie zakończy wykonania, powinienem być w stanie go zatrzymać.

Odpowiedzi:


62

Użyj timeout:

NAME
       timeout - run a command with a time limit

SYNOPSIS
       timeout [OPTION] DURATION COMMAND [ARG]...
       timeout [OPTION]

(Na wszelki wypadek, jeśli nie masz tego polecenia lub musisz być kompatybilny z bardzo bardzo starymi powłokami i masz kilka innych ściśle określonych wymagań… spójrz na to pytanie ;-))


1
Doskonale, dziękuję za link do tego pytania. Nie miałem limitu czasu w moim systemie, ale teraz mam. Na marginesie, czy limit czasu jest powiązany z większością dystrybucji Linuksa?
nikhil

1
Całkiem fajne. możesz zrobić coś takiego: for i in `seq 0 3`; do timeout 2 ethtool -p eth$i; done;mrugać diodami LED na
kartach sieciowych

1
Co za seksowne polecenie. Dzięki za wskazanie tego, nie byłem tego świadomy.
Bruno Bieri,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.