Bash Pagina 102
Sari la navigare
Sari la căutare
Semnale, Capcane, Blocarea Fișierelor și Descriptori de Fișiere - prezentare generală
Semnale și Capcane
- Semnalele sunt notificări trimise către un proces pentru a indica anumite evenimente (ex. `SIGINT`, `SIGTERM`).
- Comanda `trap` poate fi utilizată pentru a captura semnalele și a defini acțiuni specifice, prevenind oprirea necontrolată a scriptului.
- Exemplu de utilizare:
trap "echo 'Script oprit de utilizator'; exit" SIGINT
Acest cod interceptează semnalul `SIGINT` (CTRL+C) și execută un mesaj înainte de încheierea scriptului.
Blocarea Fișierelor
- Blocarea fișierelor previne accesul simultan al mai multor procese la același fișier, evitând coruperea datelor.
- Se poate realiza blocarea exclusivă a fișierului folosind comanda `flock`, de exemplu:
flock /tmp/lockfile -c "comanda_de_executat"
În acest caz, `comanda_de_executat` va fi rulată doar dacă fișierul `/tmp/lockfile` nu este deja blocat.
Descriptori de Fișiere
- Descriptoriii de fișiere sunt valori numerice care identifică fișierele deschise de un proces.
- În shell, descriptorii de fișiere comuni sunt:
`0` — Stdin (Intrare standard) `1` — Stdout (Ieșire standard) `2` — Stderr (Eroare standard)
- Exemple de redirecționare:
echo "Mesaj" > out.txt # Redirecționează stdout în fișier
echo "Eroare" 2> error.txt # Redirecționează stderr în fișier
Rezumat:
- Semnalele și capcanele permit manipularea comportamentului la întreruperi.
- Blocarea fișierelor este esențială pentru gestionarea accesului concurent la resurse.
- Descrierile de fișiere sunt esențiale pentru redirecționarea ieșirilor și manipularea fluxurilor de date.
Aceste concepte avansate permit un control precis asupra execuției scripturilor și accesului la fișiere.