Jugando con demonios en Linux :D
Una de las tantas cosas que me gustan de los sistemas unix y para el caso en especifico linux, es el control que se puede tener sobre los diferentes procesos, pues bien, a continuación comparto una pequeña lista con funciones básicas de algunos comandos que podrían llegar a ser de gran ayuda.
pgrep: muchas personas solemos usar el comando "ps aux | grep nombre-proceso" para obtener entre muchos datos los PID de los procesos que mantienen vivos a los demonios de nuestras aplicaciones, pero, para quienes quieran hacer un poco de pereza y saber el proceso padre de la apliación podemos usar "pgrep nombre-proceso", comando que devolverá el PID del demonio padre.
kill: supongo es uno de los comandos más usados por la mayoría de nosotr@s, pero la mayoría no conocemos los sabores de éste.
Si usamos el comando:
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR 11) SIGSEGV 12) SIGUSR
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 36) SIGRTMIN 37) SIGRTMIN 38) SIGRTMIN
39) SIGRTMIN 40) SIGRTMIN 41) SIGRTMIN 42) SIGRTMIN
43) SIGRTMIN 44) SIGRTMIN 45) SIGRTMIN 46) SIGRTMIN
47) SIGRTMIN 48) SIGRTMIN 49) SIGRTMIN 50) SIGRTMAX
51) SIGRTMAX 52) SIGRTMAX 53) SIGRTMAX1 54) SIGRTMAX
55) SIGRTMAX 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) SIGRTMA
Aunque las señales más comunes son:
- SIGHUP (1): cuelgue del terminal o muerte del proceso controlador
- SIGTERM (15): mata el proceso permitiéndole terminar correctamente
- SIGKILL (9): mata el proceso sin permitirle terminar
- SIGSTOP (19): para el proceso
- SIGCONT (18): continúa si parado
- SIGINT (2): interrupción de teclado (Ctrl-C)
- SIGTSTP (20): stop de teclado (Ctrl-Z)
- SIGQUIT (3): salida de teclado (Ctrl-)
Datos curiosos: cuando envíamos kill sin ningún parámetro envía por defecto la señal correspondiente a (15), además cuando enviamos la señal directamente al padre, ésta envía a todos sus hijos (si él se muere, sus hijos también... padre desconsiderado xD)
nohup: el comando nohup es muy útil, cuando queremos que un proceso tenga tendencias a la inmortalidad (ignore las señales SIGUP). Para usarlo sólo debemos anteceder al comando el comando "nohup".
... en fin, ésta es una pequeña muestra de los grandes desconocimientos que algunos tenemos :D
Saludos y recuerda, si algún demonio te causa problemas... tú eres más que poderoso que init y en tus manos está el que viva o muera... muerte a esos demonios conflictivos!!! xD
24 Mar 2010 05:47:12
mi comando preferido es `kill -9 -1` xD