CentOS: comando killall (para eliminar todos los procesos con nombres que coinciden con un patrón determinado)


18

Recientemente comencé a usar CentOS. Intenté usar la killallutilidad, pero la encontré faltante y recibí un command not foundmensaje al intentar usarla. ¿Cómo puedo obtener esta funcionalidad en mi sistema para poder, por ejemplo, eliminar todos los procesos cuyos nombres coinciden con un patrón?

Respuestas:


24

La pkillutilidad es una alternativa mucho mejor a killall. killallno es portátil ya que el comportamiento del comando es muy diferente entre los sistemas operativos. pkilles portátil y se comporta igual en todas partes. También es mucho más flexible, ya que proporciona muchas formas diferentes de combinar los procesos. También comparte el mismo comportamiento y argumentos coincidentes que la pgreputilidad , lo que le permite ver qué procesos se harían coincidir y señalar sin realmente indicarlos.

Uso: pkill foo(que sería lo mismo que killall foo)


2
Creo que esta respuesta hubiera sido mejor si hubiera mostrado cómo exactamente se puede usar para reemplazar killall.
exebook

Sin embargo, no todas las implementaciones de pgrepsoporte admiten la -qopción de ser silencioso.
Kusalananda

también sería mejor si describiera de qué paquete es parte
Xalorous

21

PSmisc contiene la killallutilidad, junto con algunas otras herramientas pequeñas y útiles. Se puede agregar simplemente con

yum install psmisc

2

Además de la solución de Patrick, la funcionalidad del comando killall se puede replicar con lo siguiente:

pkill -15 [process name]

Por ejemplo, para matar todos los procesos en ejecución memcached, uno escribiría lo siguiente:

pkill -15 memcached

El '-15' es la representación numérica de una señal POSIX SIGTERM. Para obtener una lista de todas las señales POSIX que se pueden disparar en un proceso, use el siguiente comando:

kill -l

Esto devolverá la siguiente tabla:

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

Puede encontrar más información sobre lo que hace cada señal aquí .


Tenga en cuenta que killallenvía la TERMseñal por defecto, no KILL.
Kusalananda


1
Buen punto. Editado
Daniel Kay

¿Por qué editó solo para eliminar 'Espero que esto ayude!' desde el final, @Rui F Ribeiro? ¿Existen reglas comunitarias contra el intento de ser cortés?
Daniel Kay

0

Me imagino que la alternativa systemd es systemctl halt(abreviatura de systemctl isolate halt.target)?

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.