Com matar processos mitjançant Linux

La major part del temps, voldreu que un programa finalitzi pels seus propis mitjans, o si és una aplicació gràfica, utilitzant l'opció de menú adequada o utilitzant la creu en la cantonada.

De tant en tant, es penjarà un programa, en aquest cas necessitaràs un mètode per matar-lo. També és possible que vulgueu matar un programa que s'estigui executant en segon pla que ja no necessiteu executar.

Aquesta guia proporciona un mètode per matar totes les versions de la mateixa aplicació que s'està executant al vostre sistema.

Com utilitzar el comandament killall

L'ordre killall mata tots els processos per nom. Això vol dir que si teniu tres versions del mateix programa executant l'ordre killall, es mataran els tres.

Per exemple, obriu un petit programa d'aquest visualitzador d'imatges. Ara obriu una altra còpia del mateix visor d'imatges. Pel meu exemple he triat Xviewer que és un clon d' Eye Of Gnome .

Ara obriu un terminal i escriviu el següent comandament:

killall

Per exemple, per matar totes les instàncies de Xviewer, escriviu el següent:

killall xviewer

Les dues instàncies del programa que heu triat per matar ara tancaran.

Matar el procés exacte

killall pot produir resultats estranys. Doncs aquí hi ha una raó per la qual. Si teniu un nom de comanda que té més de 15 caràcters de llarg, l'ordre killall només funcionarà en els primers 15 caràcters. Si, per tant, teniu dos programes que comparteixen els mateixos primers 15 caràcters, tots dos programes seran cancel·lats tot i que només voleu matar-ne un.

Per evitar això, podeu especificar el següent interruptor que només matarà fitxers que coincideixin amb el nom exacte.

killall -e

Ignora casos en matar programes

Per assegurar-se que el comandament killall ignora el cas del nom del programa que proporcioneu, utilitzeu l'ordre següent:

killall-jo
killall --ignore-case

Mata tots els programes al mateix grup

Quan executeu una ordre com la següent, crearà dos processos:

ps -ef | menys

Una ordre és per a la part ps -ef que enumera tots els processos en execució del vostre sistema i la sortida s'utilitza amb la comanda menys .

Tots dos programes pertanyen al mateix grup que és bash.

Per matar tots dos programes alhora, podeu executar el següent comandament:

killall -g

Per exemple, per matar tots els comandaments que s'executen en una shell bash, executeu el següent:

killall -g bash

Incidentment, per a enumerar tots els grups en execució, executeu el següent comandament:

ps-g

Obtenir la confirmació abans de matar programes

Òbviament, l'ordre killall és un comandament força poderós i no vol matar accidentalment els processos equivocats.

Si feu servir el següent interruptor, se us preguntarà si esteu segur abans de cada procés.

killall -i

Matar processos que han funcionat per a una determinada quantitat de temps

Imagineu que heu estat executant un programa i triga molt més del que esperàveu.

Podeu matar l'ordre de la següent manera:

killall -o h4

La h en la comanda anterior significa hores.

També podeu especificar qualsevol dels elements següents:

Com a alternativa, si voleu matar els comandaments que acaben de començar a executar, podeu utilitzar el següent interruptor:

killall-i h4

Aquesta vegada, l'ordre killall matarà tots els programes que s'executen durant menys de 4 hores.

No em diguis quan no es mata un procés

Per defecte, si intenteu matar un programa que no s'està executant, rebrà el següent error:

nom del programa: no s'ha trobat cap procés

Si no voleu dir-vos si el procés no s'ha trobat, utilitzeu l'ordre següent:

killall -q

Utilitzant expressions regulars

En lloc d'especificar el nom d'un programa o comanda, podeu especificar una expressió regular perquè tots els processos que coincideixin amb l'expressió regular es tanquin amb l'ordre killall.

Per utilitzar una expressió regular, utilitzeu l'ordre següent:

killall -r

Matar programes per a un usuari específic

Si voleu matar un programa que està executant un usuari específic, podeu especificar el següent comandament:

killall -u

Si voleu matar tots els processos d'un usuari en particular, podeu ometre el nom del programa.

Espera a killall to finish

Per defecte, killall tornarà directament al terminal quan l'executeu, però podeu forçar que killall espereu fins que tots els processos especificats s'hagin tancat abans de tornar-vos a la finestra del terminal.

Per fer-ho, executeu el següent comandament:

killall -w

Si el programa mai mor, killall també continuarà vivint.

Senyals de senyals Senyals

Per defecte, l'ordre killall envia el senyal SIGTERM als programes per tancar-los i aquest és el mètode més net per matar programes.

Tanmateix, hi ha altres senyals que podeu enviar utilitzant l'ordre killall i podeu enumerar-les utilitzant el següent comandament:

killall -l

La llista retornada serà alguna cosa així:

Aquesta llista és molt extensa. Per llegir sobre el significat d'aquests senyals, executeu el següent comandament:

senyal d'home 7

En general, haureu d'utilitzar l'opció SIGTERM predeterminada, però si el programa es nega a morir, podeu utilitzar SIGKILL que obliga al programa a tancar-se encara que sigui indiferent.

Altres maneres de matar un programa

Hi ha altres 5 maneres de matar una aplicació Linux tal com s'ha ressaltat a la guia enllaçada.

Tanmateix, per estalviar-vos, l'esforç de fer clic a l'enllaç aquí és una secció que mostra quines són aquestes ordres, per què podeu utilitzar aquests comandaments a killall.

El primer és l'ordre kill. L'ordre killall que heu vist és excel·lent en matar totes les versions del mateix programa. La comanda kill està dissenyada per matar un procés a la vegada i, per tant, és més orientat.

Per executar l'ordre kill, necessiteu conèixer l'ID del procés del procés que voleu matar. Per a això, podeu utilitzar l' ordre ps .

Per exemple, per trobar una versió en curs de Firefox, podeu executar el següent comandament:

ps -ef | grep firefox

Veureu una línia de dades amb el comandament / usr / lib / firefox / firefox al final. Al principi de la línia, veureu la vostra identificació d'usuari i el número després que l'ID d'usuari sigui l'ID del procés.

Si utilitzeu l'ID del procés, podeu eliminar el Firefox executant el següent comandament:

matar -9

Una altra forma de matar un programa és mitjançant l'ús de l'ordre xkill. Això s'utilitza generalment per a matar aplicacions gràfiques mal compostes.

Per matar un programa com Firefox, obriu un terminal i executeu el següent comandament:

xkill

El cursor ara canviarà a una gran creu blanca. Desplaceu el cursor per sobre de la finestra que voleu matar i feu clic amb el botó esquerre del ratolí. El programa sortirà immediatament.

Una altra forma de matar un procés és mitjançant l'ús del comandament superior de Linux. La comanda superior enumera tots els processos en execució del vostre sistema.

Tot el que heu de fer per matar un procés és prémer la tecla "k" i introduir l'ID del procés de l'aplicació que voleu matar.

Anteriorment, en aquesta secció, el comandament de matança i requeria que trobeu el procés usant l'ordre ps i, a continuació, mireu el procés utilitzant l'ordre kill.

Aquesta no és l'opció més simple per cap mitjà.

Per una banda, la comanda ps retorna una gran quantitat d'informació que no necessiteu. Tot el que volíeu era l'identificador del procés. Podeu obtenir l'ID del procés més simplement executant el següent comandament:

pgrep firefox

El resultat de l'ordre anterior és simplement l'ID del procés de Firefox. Ara podeu executar l'ordre kill com segueix:

mata

(Substitueix amb l'ID del procés real retornat per pgrep).

En realitat, és més fàcil, simplement, proporcionar el nom del programa a pkill de la manera següent:

pkill firefox

Finalment, podeu utilitzar una eina gràfica com la subministrada amb Ubuntu anomenada "Monitor del sistema". Per executar "Monitor del sistema" premeu la tecla super (tecla Windows a la majoria de les computadores) i escriviu "sysmon" a la barra de cerca. Quan aparegui la icona del monitor del sistema, feu-hi clic.

El monitor del sistema mostra una llista de processos. Per finalitzar un programa de manera neta, seleccioneu-la i premeu la tecla de finalització a la part inferior de la pantalla (o premeu CTRL i E). Si això no funciona, feu clic dret i seleccioneu "Matar" o premeu CTRL i K en el procés que voleu matar.