Bash Pagina 102

De la Wiki Linux Advanced
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

Descriptorii interni, folositor pentru aflarea fisierelor deschise de catre shell

ls -l /proc/$$/fd ($$ este PID-ul curent al shell-ului deschis de script)

Deschisi in mod standard de catre shell si abstractizati ca si fisier, folositori pentru operatii cu anumite programe:

/dev/stdin (acelasi cu `0` — Stdin)
/dev/stdout (acelasi cu `1` — Stdout)
/dev/stderr (acelasi cu `2` — Stderr)

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.




Pagina anterioară | Următoarea pagină