|
||
| [IT] Bash shell: trap, catturare i segnali | ||
|
Bash shell: trap, catturare i segnali 1) trap -l 2) trap "echo \"catturato\"" 14 3) trap -pIl comando "trap" fa parte di quelli interni alla shell Bash. Serve a catturare determinati segnali dalla shell e compiere opportune operazioni in conseguenza. Ad esempio, se si volesse catturare il segnale numero 14, ovvero SIGALRM ( vedere anche "Articoli/Segnali in C") si potrebbe usare trap "echo \"catturato\"" 14Questo comando permette alla shell bash di catturare il segnale SIGALRM e di fornire sull'output il messaggio "catturato". Potrebbero essere configurate anche altre operazioni, come script, invio email, ecc. trap -pL'opzione "-p" consente di elencare tutte le assegnazioni segnale/operazione fatte in precedenza. Un esempio: [user@server user]$ trap -p [user@server user]$ trap "echo \"catturato\"" 14 [user@server user]$ trap -p trap -- 'echo "catturato"' SIGALRMUna lista dei processi catturabili e' data da trap -lVediamo infine un esempio completo, a partire dall'elenco dei segnali, fino all'utilizzo pratico, supponendo che l'id di processo della shell che si sta usando sia 12345 (usare "ps"): [user@server user]$ trap -l 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 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 32) SIGRTMIN 33) SIGRTMIN+1 34) SIGRTMIN+2 35) SIGRTMIN+3 36) SIGRTMIN+4 37) SIGRTMIN+5 38) SIGRTMIN+6 39) SIGRTMIN+7 40) SIGRTMIN+8 41) SIGRTMIN+9 42) SIGRTMIN+10 43) SIGRTMIN+11 44) SIGRTMIN+12 45) SIGRTMIN+13 46) SIGRTMIN+14 47) SIGRTMIN+15 48) SIGRTMAX-15 49) SIGRTMAX-14 50) SIGRTMAX-13 51) SIGRTMAX-12 52) SIGRTMAX-11 53) SIGRTMAX-10 54) SIGRTMAX-9 55) SIGRTMAX-8 56) SIGRTMAX-7 57) SIGRTMAX-6 58) SIGRTMAX-5 59) SIGRTMAX-4 60) SIGRTMAX-3 61) SIGRTMAX-2 62) SIGRTMAX-1 63) SIGRTMAX [user@server user]$ trap -p [user@server user]$ trap "echo \"catturato\"" 14 [user@server user]$ trap -p trap -- 'echo "catturato"' SIGALRM [user@server user]$ kill -14 12345 catturato [user@server user]$Esistono anche altri due valori non elencati che si possono usare. Con "0" oppure "EXIT", si cattura l'uscita dalla shell. Con "DEBUG", l'azione viene eseguita dopo ogni semplice comando. "kill", a dispetto del nome, invia segnali, non serve solo ad uccidere processi. trap "-" 14Cosi' vengono ripristinate le impostazioni iniziali. |
||
(c) 1999-2006
|