SUPRAȚI

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 4 iulie 2015; verificările necesită 3 modificări .
SUPRAȚI
Descriere Pierderea conexiunii cu terminalul
Mod implicit încetarea procesului
Codurile SA_SIGINFO
Nu are coduri specifice

Pe sistemele POSIX , SIGHUP  este un semnal trimis unui proces pentru a anunța că s-a pierdut conexiunea la terminalul de control al utilizatorului.

SIGHUP este o constantă întreagă definită în signal.h. Numele simbolice ale semnalelor sunt folosite în locul numerelor, deoarece numerele semnalelor pot diferi în diferite implementări.

POSIX îi atribuie SIGHUP valoarea 1. De exemplu, pentru a activa noi terminale după adăugarea lor într-un fișier , se /etc/ttysrecomandă trimiterea SIGHUP la procesul de inițializare cu kill -1 1comanda " " (init are PID = 1).

Etimologie

SIG  este un prefix comun care înseamnă „semnal”, HUP  este o scriere prescurtată a englezei.  hang up  - închide, întreruperea liniei.

Istorie

Timp de mulți ani, computerele (mainframe-urile) au fost accesate prin conectarea terminalelor de computer la acestea prin linii seriale (de exemplu, linii ale standardului RS-232 ). Prin urmare, la proiectarea sistemului de semnal , a fost definit un semnal de deconectare pentru a termina toate programele lansate de la terminalul pierdut.

Semnalele au fost întotdeauna un mijloc convenabil de comunicare între procese, dar primele proiecte nu au inclus semnale personalizate (cum ar fi SIGUSR1 și SIGUSR2 ulterioare ) pe care un program le-ar putea folosi pentru propriile nevoi. Din acest motiv, în programele care nu folosesc terminale de control în timpul lucrului lor, cum ar fi demonii , SIGHUP a început să fie folosit pentru reinițializare (recitirea fișierelor de configurare). Această utilizare a SIGHUP a supraviețuit până în zilele noastre, atât în ​​programele vechi și standard ( init , inetd , cron , Sendmail , Apache ...), cât și în majoritatea celor noi și este considerată standardul de facto.

Utilizare

Semnalul SIGHUP este trimis:

Acțiunea normală implicită pentru SIGHUP pe sistemele POSIX este de a încheia procesul.

Când un shell Unix primește un SIGHUP, de obicei repornește toate sarcinile oprite înainte de a le trimite un SIGHUP. În alte implementări (de exemplu, GNU bash ), shell-ul „renunță” la toate sarcinile copil înainte de a ieși (și continuă să ruleze) .

SIGHUP poate fi prins sau ignorat de program.

Pentru a preveni terminarea programelor și utilitarelor standard cu SIGHUP , există un utilitar nohup(un „prefix” pentru un program pe linia de comandă). nohupconfigurează SIGHUP să fie ignorat și apoi rulează programul cu argumente în fundal cu ieșirea redirecționată către un fișier nohup.outdin directorul curent sau de acasă al utilizatorului.