Jak przekroczyć limit limitu w Bash bez niepotrzebnego opóźnienia

Jak przekroczyć limit limitu w Bash bez niepotrzebnego opóźnienia

W Bash czasami może być konieczne uruchomienie polecenia, które zajmuje dużo czasu, a możesz nie chcieć czekać, aż skończy się na czas nieokreślony. Jednym z rozwiązań tego problemu jest użycie polecenia limitu czasu, które ogranicza czas czasu, który może uruchomić polecenie. Ten artykuł omówi, jak przekroczyć limit czasu w Bash bez niepotrzebnego opóźnienia.

Limit czasu polecenie w Bash

Aby przejść na limit komendy w Bash, możemy użyć "koniec czasu" Komenda. Polecenie „Limit Timeout” nie jest domyślnie dostępne dla wszystkich systemów, ale można je zainstalować za pomocą menedżera pakietów w większości dystrybucji Linux, oto składnia polecenia „Limit czasu”:

Polecenie czasu trwania limitu czasu [opcja] [Arg]


Tutaj „opcja” jest opcjonalnym argumentem, który określa zachowanie polecenia limitu czasu, „czas trwania” jest limitem czasu uruchomienia, a „polecenie [arg]” to polecenie i jego argumenty, które chcemy uruchomić.

Na przykład powiedzmy, że chcemy uruchomić polecenie „Sleep” przez pięć sekund, ale chcemy przekroczyć komendę po trzech sekundach i oto przykładowy skrypt powłoki:

#!/bin/bash
Echo „Rozpoczęcie snu komenda z czasem 3 sekund…”
Limit czasu 3s Sleep 5s
Echo „Sleep Command zakończone."


Tutaj określałem czas trwania czasu jako 3 sekundy i czas trwania polecenia „Sleep” jako 5 sekund. Polecenie „limit czasu” zatrzyma polecenie „Sleep” po 3 sekundach, mimo że polecenie „Sleep” normalnie działałoby przez 5 sekund.


Aby zapobiec niepotrzebnemu opóźnieniu podczas korzystania z polecenia „Limit czasu”, możemy użyć opcji „-K”. Opcja „-K” określa sygnał, który zostanie wysłany do polecenia, jeśli przekroczy limit limitu limitu czasu. Ten sygnał spowoduje natychmiastowe zakończenie polecenia, zamiast czekać, aż skończy się z wdziękiem.

Na przykład powiedzmy, że chcemy uruchomić polecenie „Sleep” przez pięć sekund, ale chcemy przekroczyć limit polecenia po trzech sekundach i wysłać sygnał SIGINT, jeśli przekroczy limit limitu limitu czasu. Możemy to zrobić, uruchamiając następujące polecenie:

#!/bin/bash
echo „Rozpoczęcie snu komenda z czasem 3 sekund i sygnałem sigint po 2 sekundach”
limit czasu -k 2s 3s sleep 5s
Echo „Sleep Command zakończone."


Tutaj określałem czas trwania limitu czasu jako 3 sekundy i sygnał, który ma zostać wysłany jako Sigint, jeśli przekroczy limit limitu czasu. Opcja „-K 2S” określa, że ​​sygnał SIGINT powinien zostać wysłany po dwóch sekundach limitu limitu czasu.

Wniosek

Limit czasu Polecenie w Bash jest przydatnym narzędziem, które może pomóc w wydajniejszym uruchomieniu poleceń i zapobiec niepotrzebnym opóźnieniu. Korzystając z polecenia „Limit czasu” i opcji „-K”, możesz ograniczyć ilość czasu, w którym polecenie może uruchomić i wysłać sygnał, aby go natychmiast zakończyć, jeśli przekroczy limit limitu czasu. Pomoże ci to zaoszczędzić czas i bardziej wydajnie uruchomić skrypty.