Bash Pagina 102: Diferență între versiuni
Sari la navigare
Sari la căutare
Admin (discuție | contribuții) (Pagină nouă: Pagina anterioară | Următoarea pagină) |
Admin (discuție | contribuții) Fără descriere a modificării |
||
Linia 1: | Linia 1: | ||
== 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: | |||
<code>trap "echo 'Script oprit de utilizator'; exit" SIGINT</code> | |||
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: | |||
<code>flock /tmp/lockfile -c "comanda_de_executat"</code> | |||
În acest caz, `comanda_de_executat` va fi rulată doar dacă fișierul `/tmp/lockfile` nu este deja blocat. | |||
'''Descriptori de Fișiere''' | |||
* Descrierile 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: | |||
<code>echo "Mesaj" > out.txt # Redirecționează stdout în fișier</code> | |||
<code>echo "Eroare" 2> error.txt # Redirecționează stderr în fișier</code> | |||
'''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. | |||
Versiunea de la data 28 octombrie 2024 21:28
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
- Descrierile 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.