En aquest tema, aprendrem a gestionar processos en Bash. La gestió de processos és una habilitat essencial per a qualsevol administrador de sistemes o desenvolupador que treballi amb sistemes Unix o Linux. Els processos són programes en execució, i la capacitat de gestionar-los eficientment pot millorar significativament el rendiment i la seguretat del sistema.
Conceptes Clau
- Processos i PID: Cada procés en execució té un identificador únic anomenat PID (Process ID).
- Processos en Primer Pla i en Segon Pla: Els processos poden executar-se en primer pla (foreground) o en segon pla (background).
- Senyalització de Processos: Els processos poden rebre senyals per realitzar accions específiques, com ara parar-se o reiniciar-se.
- Comandes de Gestió de Processos: Hi ha diverses comandes en Bash per gestionar processos, com
ps
,top
,kill
,bg
,fg
, ijobs
.
Comandes de Gestió de Processos
ps
La comanda ps
mostra una llista dels processos en execució. Alguns dels paràmetres més comuns són:
ps
: Mostra els processos en execució per l'usuari actual.ps -e
: Mostra tots els processos del sistema.ps -f
: Mostra una llista completa amb més detalls.
Exemple:
top
La comanda top
proporciona una vista en temps real dels processos en execució, incloent l'ús de la CPU i la memòria.
Exemple:
kill
La comanda kill
s'utilitza per enviar senyals a un procés. El senyal més comú és SIGTERM
(senyal de terminació), que demana al procés que es tanqui de manera ordenada.
Exemple:
Per enviar un senyal específic, com SIGKILL
(terminació immediata), utilitza:
bg
i fg
Les comandes bg
i fg
s'utilitzen per gestionar processos en segon pla i en primer pla, respectivament.
bg
: Envia un procés al segon pla.fg
: Porta un procés del segon pla al primer pla.
Exemple:
# Executar un procés en segon pla sleep 100 & # Llistar processos en segon pla jobs # Portar un procés del segon pla al primer pla fg %1
jobs
La comanda jobs
mostra una llista dels processos en segon pla associats a la sessió actual de la shell.
Exemple:
Exercicis Pràctics
Exercici 1: Llistar Processos
- Utilitza la comanda
ps
per llistar tots els processos en execució. - Utilitza la comanda
top
per veure els processos en temps real.
Solució:
Exercici 2: Gestionar un Procés en Segon Pla
- Executa la comanda
sleep 100
en segon pla. - Utilitza la comanda
jobs
per veure el procés en segon pla. - Porta el procés al primer pla utilitzant
fg
.
Solució:
Exercici 3: Terminar un Procés
- Troba el PID d'un procés en execució utilitzant
ps
. - Termina el procés utilitzant
kill
.
Solució:
Errors Comuns i Consells
- No trobar el PID correcte: Assegura't d'utilitzar
ps
otop
per trobar el PID correcte del procés que vols gestionar. - Utilitzar el senyal incorrecte: Utilitza
kill -9
només com a últim recurs, ja que no permet al procés tancar-se de manera ordenada. - Oblidar el símbol
&
: Quan vols executar un procés en segon pla, no oblidis afegir&
al final de la comanda.
Resum
En aquesta secció, hem après a gestionar processos en Bash utilitzant diverses comandes com ps
, top
, kill
, bg
, fg
, i jobs
. La gestió eficient de processos és crucial per mantenir el sistema operatiu funcionant de manera òptima i segura. En el proper tema, explorarem la gestió d'errors i la depuració en scripts de Bash.
Curs de Programació en Bash
Mòdul 1: Introducció a Bash
- Què és Bash?
- Configuració del teu Entorn
- Navegació Bàsica per la Línia de Comandes
- Entenent la Shell
Mòdul 2: Comandes Bàsiques de Bash
- Operacions amb Fitxers i Directoris
- Comandes de Processament de Text
- Permisos i Propietat de Fitxers
- Redirecció i Piping
Mòdul 3: Conceptes Bàsics de Scripting
Mòdul 4: Scripting Intermedi
Mòdul 5: Tècniques Avançades de Scripting
- Operacions Avançades amb Fitxers
- Gestió de Processos
- Gestió d'Errors i Depuració
- Expressions Regulars
Mòdul 6: Treballant amb Eines Externes
Mòdul 7: Automatització i Programació
- Treballs Cron
- Automatització de Tasques
- Scripts de Còpia de Seguretat i Restauració
- Monitorització i Registre
Mòdul 8: Millors Pràctiques i Optimització
- Escriure Codi Llegible
- Optimització de Scripts en Bash
- Consideracions de Seguretat
- Control de Versions amb Git