martes, 12 de julio de 2011

GNU/Linux - Bloquear Ctrl + C y Ctrl + Z

Por estos días reviviendo viejos tiempos en donde me defendía un poco con bash me encuentro con la necesidad de hacer un menú de selección básico con el detalle de no permitir al usuario escapar de ese mené si no obligarlo a entrar a un programa.

Buscando en inet me encuentro con que esto se puede hacer con la instrucción "trap" que básicamente lo que hace es capturar una señal del sistema (algunas se llaman a través de combinaciones de teclas como las que queremos bloquear) y ejecuta una orden.

claro esto, la orden quedaría de la siguiente forma

trap "" 2 20

Colocamos esta instrucción al inicio del script que se quiera ejecutar y listo.

A continuación se deja la tabla de señales del sistema:

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

Extraído del siguiente post: http://nixcraft.com/shell-scripting/12605-shell-script-disable-ctrl-c-ctrl-z.html