Jak ograniczyć czas wykonania zadania cron

Niejednokrotnie można spotkać się z problemem ograniczenia czasu trwania zadania cron. Z pomocą przychodzi nam mało popularne i bardzo proste polecenie timeout, które dostępne jest w każdym systemie opartym na Linuksie.

Aby uchronić się przed zadaniem które nigdy nie ma końca, wystarczy zmodyfikować polecenie uruchamiające w następujący sposób:

/bin/timeout -s 9 60 /home/uzytkownik/skrypt.sh

Rozbijmy parametry wywołania:

  • -s 9 – kod sygnału który ma zostać wysłany do skryptu, w tym przypadku 9 – czyli zabicie procesu,
  • 60 – czas po którym ma zostać wysłany sygnał
  • /home/uzytkownik/skrypt.sh – właściwy skrypt, który ma zostać zakończony po określonym czasie

Poniżej lista wszystkich możliwych sygnałów które można wysłać do aplikacji:

 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX