Els processos són programes en execució. Cada programari pot iniciar un o més processos que s'hauran de carregar a la memòria principal per al seu processament per la CPU. De vegades, un procés pot subdividir-se en els anomenats LWP o processos lleugers, és a dir, en brins, fils o threads, com els vulguis trucar. Quan tots els threads d'un procés s'han executat, llavors el procés s'ha finalitzat.
Feta aquesta introducció, dir que els processos en els entorns Unix s'identifiquen per un ID i poden tenir diversos estats. Aquest ID o identificador és un número assignat a l'esmentat procés per poder fer un seguiment. Es pot conèixer fàcilment el PID d'un procés amb l'eina ps, htop, entre altres eines. I també es pot apreciar informació sobre el seu estat.
Els estats en què pot estar un procés en Linux són:
- Running: el procés està en execució.
- Sleeping: el procés està dormint, a l'espera que succeeixi un esdeveniment que el desperti i continuï la seva execució.
- Terminating: el procés s'ha acabat o mort.
- Device I / O: processos de dispositius d'E / S que no es poden interrompre.
- Zombie: quan un procés fill acaba abans que el seu procés pare es manté la informació del fill fins que li pare acaba també. El fill realment està mort o acabat, però no pot ser destruït per alliberar recursos. Realment no ocupa temps de CPU, però si espai a la taula de processos.
Una manera de enviar senyals als processos perquè passin a un estat o un altre és mitjançant la comanda kill. Si fas servir la comanda kill -l veuràs la llista de senyals que pots enviar. El més típic és enviar un senyal KILL a un procés per eliminar-lo. Per exemple:
kill -l kill -9 <PID>
El senyal setembre o SIGKILL directament mata el procés assenyalat per PID sense comprovar l'estat. En canvi, SIGTERM acabarà el procés només en certes circumstàncies, ja que sí comprova l'estat de el procés a què se li envia el senyal i si no és segur es farà cas del senyal.
Bé, un cop dit tot això, les eines com ps tenen una columna que mostra el STAT o estat de el procés. Si et fixes en aquesta columna, apareix la inicial del l'estats en què es troba. Per exemple, S per sleeping, o Z per zombie, etc. pots comprovar si tens o no processos zombi en el teu sistema amb la següent comanda:
ps aux | grep 'Z'
En el meu cas, n'hi havia un amb PID 6393. I per eliminar els processos zombi, Pots fer servir la següent ordre:
kill 6393
Hola realitzo aquest procés per a un procés però li dono KILL i vulvo a revisar i segueix aquest procés