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
psper llistar tots els processos en execució. - Utilitza la comanda
topper veure els processos en temps real.
Solució:
Exercici 2: Gestionar un Procés en Segon Pla
- Executa la comanda
sleep 100en segon pla. - Utilitza la comanda
jobsper 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
psotopper trobar el PID correcte del procés que vols gestionar. - Utilitzar el senyal incorrecte: Utilitza
kill -9nomé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
