Cloud with rain
.:G
G:.
0 and 1 serie, black on white
pulled card
myjsp.feelinglinux.com
ver. 1.1.9-4
Hallo, welcome to my world.
Here you can find some stuff about computer science.
<<< Enjoy your visit! >>>
0 and 1 serie, white on black

Bash shell: trap, catturare i segnali

        Scritto: Giansante Gabriele, 2002     

1) trap -l
2) trap "echo \"catturato\"" 14
3) trap -p
Il 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\"" 14
Questo 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 -p
L'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"' SIGALRM
Una lista dei processi catturabili e' data da
trap -l
Vediamo 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 "-" 14
Cosi' vengono ripristinate le impostazioni iniziali.


Hai trovato utile questo articolo?
Aiutami a condividerlo o metti un "mi piace".
Grazie mille!


Gli strumenti di condivisione (Google+, Facebook) sono visibili in alto a destra solo dopo aver accettato la policy di utilizzo dei cookie per questo sito.
FAQ - Come faccio a cambiare la mia scelta?

 

Strumenti (myjsp.feelinglinux.com)
Gioco: allenamento con la tastiera Strumenti di codifica/decodifica URI (%-encoding) e Base64 Strumenti di calcolo online per IP e Reti
QUIZ GAME
Quiz game

Cerca @myjsp.feelinglinux.com

Pubblicita'