Com matar un procés a Linux | Kill Command

L'ordre kill a Linux (situat a /bin/kill), és una ordre integrada que s'utilitza per finalitzar processos manualment. matar L'ordre envia un senyal a un procés que finalitza el procés. Si l'usuari no especifica cap senyal que s'ha d'enviar juntament amb l'ordre kill, llavors un valor predeterminat TERME s'envia un senyal que finalitza el procés.

Sintaxi bàsica de l'ordre kill a Linux

La sintaxi bàsica de l'ordre `kill` és la següent:

Sintaxi:

kill [signal] PID 

Aquí,

  • PID = L'ordre `kill` requereix l'ID de procés (PID) del procés que volem finalitzar.
  • [senyal] = Hem d'especificar el senyal i si no especifiquem el senyal, el senyal per defecte ` TERME` s'envia per finalitzar el procés

Els senyals es poden especificar de tres maneres:

Els senyals es poden especificar de tres maneres; són els següents:

1. Per número:

Podem especificar un senyal mitjançant un número. Per exemple, tenim un PID ` 1212 ` i voleu enviar un senyal `SIGKILL` per matar aquest PID. SIGKILL té un número de senyal de ` 9 ` (Per trobar números de senyal executeu l'ordre `kill -l`).

Sintaxi:

kill -9 1212 

2. Amb el prefix SIG (p. ex./ -SIGkill)

També podem especificar el senyal mitjançant el prefix SIG. Per exemple, hem d'enviar un senyal ` TERME ` i PID és ` 1432 `. Només per comprovar el número de senyal del senyal `SIGTERM` podem utilitzar l'ordre `kill -l`.

Sintaxi:

kill -SIGTERM 1432 

3. Sense el prefix SIG:

També podem especificar senyals sense utilitzar el prefix SIG. Per exemple, si voleu enviar el senyal ` TERME` i PID ` 1234 `. Només per comprovar el número de senyal del senyal `TERM` podem utilitzar l'ordre `kill -l`.

Sintaxi:

kill -TERM 1234 

Alguns senyals comuns a kill Command

La taula següent mostra alguns senyals comuns i els seus números corresponents.

Nom del senyal Número de senyal Descripció
SOSPIR 1 S'ha detectat un bloqueig en els terminals de control o la mort del procés de control.
SIGINT 2 S'interromp des del teclat.
SIGKILL 9 Mata el senyal.
TERME 15 Acaba el senyal.

Per comprovar el nom i el número del senyal podem utilitzar ` matar -l ` ordre.

Opcions i exemples de l'ordre kill a Linux

matar -l Opció

Per mostrar tots els senyals disponibles, podeu utilitzar l'opció de comandament següent:

Sintaxi:

kill -l 

matar -l

Nota:

  • Els valors PID negatius s'utilitzen per indicar l'ID del grup de processos. Si passeu un ID de grup de processos, tot el procés dins d'aquest grup rebrà el senyal.
  • Un PID de -1 és molt especial, ja que indica tots els processos excepte kill i init, que és el procés principal de tots els processos del sistema.
  • Per mostrar una llista de processos en execució, utilitzeu l'ordre ps i això us mostrarà processos en execució amb el seu número PID. Per especificar quin procés ha de rebre el senyal de matança, hem de proporcionar el PID.

Sintaxi:

ps 

ps

matar PID Opció

Aquesta opció especifica l'ID de procés del procés que s'ha d'eliminar.

Sintaxi:

kill pid 

matar -s Opció

Aquesta opció especifica el senyal que s'ha d'enviar al procés.

Sintaxi:

kill -signal pid 

kill Command a Linux -Preguntes freqüents

Com matar un procés des de la línia d'ordres de Linux?

Per matar un procés des de la línia d'ordres de Linux, podeu utilitzar el kill> comanda seguida de l'ID de procés (PID) del procés de destinació. Per exemple, per finalitzar un procés amb PID 1234, utilitzareu l'ordre següent:

kill 1234 

Per defecte, el kill> L'ordre envia el senyal SIGTERM, permetent al procés realitzar operacions de neteja abans de la finalització. Si el procés no respon a SIGTERM o si es requereix una terminació immediata, podeu utilitzar el senyal SIGKILL amb el -9> opció:

kill -9 1234 

És important tenir en compte que la finalització forçada d'un procés amb SIGKILL pot provocar la pèrdua o la corrupció de dades, per la qual cosa es recomana provar SIGTERM primer i recórrer a SIGKILL només si cal.

Com matar diversos processos alhora?

Podem utilitzar l'ordre kill per matar diversos processos alhora. Només hem d'especificar diversos PID separats per espais, o també podem utilitzar l'ordre `killall` per matar tots els processos amb un nom específic.

Per exemple:

Si volem eliminar els PID de processos com 1234, 4321 i 2342, podem utilitzar l'ordre següent:

kill 1234 4321 2342 

Si volem matar tots els processos amb el nom firefox. Podem utilitzar la següent comanda.

killall firefox 

És segur matar els processos del sistema?

No, és important tenir en compte que només els processos de matança que sabem que són segurs per matar i matar processos del sistema pot causar inestabilitat del sistema. Sempre és millor utilitzar altres mètodes com ara reiniciar el sistema o identificar la causa arrel del problema i solucionar-lo.

Quina diferència hi ha entre SIGTERM i SIGKILL a l'ordre `kill` a Linux?

SIGTERM, envia un senyal de terminació al procés que ajuda a sortir amb gràcia. Mentre que SIGKILL envia un senyal de matança al procés, que finalitza els processos amb força i immediatament.

Per exemple:

Per enviar el senyal `SIGTERM` i el PID `4321`, podem utilitzar la següent comanda.

kill -15 4321 

Per enviar el senyal `SIGKILL` i PID `4321`, podem utilitzar la següent comanda.

kill -9 4321 

Com puc trobar l'ID de procés (PID) d'un programa específic a Linux?

Per trobar el PID d'un programa específic, podeu utilitzar el pgrep> comanda seguida del nom del programa. Per exemple, per trobar el PID del procés de Firefox, introduïu:

pgrep firefox 

Quina és la finalitat del pkill> comanda, i en què es diferencia del kill> comandament?

El pkill> L'ordre s'utilitza per enviar senyals als processos basats en el seu nom, proporcionant una manera més còmoda d'acabar els processos. Es diferencia de la kill> comandant permetent als usuaris especificar processos pel nom en lloc del PID.

Com puc comprovar l'ús de recursos (CPU, memòria) d'un procés específic a Linux?

Per comprovar l'ús dels recursos d'un procés específic, podeu utilitzar el top> comanda juntament amb l'ID del procés (PID). Per exemple, per supervisar l'ús de recursos d'un procés amb PID 1234, hauríeu d'executar:

top -p 1234 

Conclusió

L'ordre `kill` a Linux és una utilitat molt potent per gestionar processos. Hem entès les diferents maneres d'especificar els senyals i les opcions disponibles a l'ordre kill que ens poden ajudar a gestionar els recursos del nostre sistema de manera eficient i resoldre problemes de manera ràpida i eficaç.