SIGHUP

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 4. juli 2015; checks kræver 3 redigeringer .
SIGHUP
Beskrivelse Tab af forbindelse til terminalen
Standard procesafslutning
SA_SIGINFO Koder
Har ingen specifikke koder

POSIX - systemer er SIGHUP  et signal, der sendes til en proces for at meddele, at forbindelsen til brugerens kontrollerende terminal er mistet.

SIGHUP er en heltalskonstant defineret i signal.h. De symbolske navne på signalerne bruges i stedet for numrene, da numrene på signalerne kan være forskellige i forskellige implementeringer.

POSIX tildeler værdien 1 til SIGHUP. For eksempel, for at aktivere nye terminaler efter at have tilføjet dem til en fil , /etc/ttysanbefales det at sende SIGHUP til init -processen med kill -1 1kommandoen " " (init har PID = 1).

Etymologi

SIG  er et almindeligt præfiks , der betyder "signal", HUP  er en forkortet stavemåde af engelsk.  læg på  - læg på, linjeafbrydelse.

Historie

I mange år fik man adgang til computere (mainframes) ved at forbinde computerterminaler til dem via serielle linjer (for eksempel linjer i RS-232- standarden ). Derfor blev der ved design af signalsystemet defineret et frakoblingssignal for at afslutte alle programmer, der blev lanceret fra den tabte terminal.

Signaler har altid været et bekvemt middel til kommunikation mellem processer, men tidlige designs indeholdt ikke brugerdefinerede signaler (såsom de senere SIGUSR1 og SIGUSR2 ), som et program kunne bruge til sine egne behov. Af denne grund begyndte SIGHUP at blive brugt til geninitialisering (genlæsning af konfigurationsfiler) i programmer, der ikke bruger kontrolterminaler under deres arbejde, såsom daemons . Denne brug af SIGHUP har overlevet den dag i dag, både i gamle og standardprogrammer ( init , inetd , cron , Sendmail , Apache ...), og i de fleste nye, og betragtes som de facto-standarden.

Brug

SIGHUP-signalet sendes:

Den normale standardhandling for SIGHUP på POSIX-systemer er at afslutte processen.

Når en Unix-shell modtager en SIGHUP, genstarter den normalt alle stoppede opgaver, før den sender dem en SIGHUP. I andre implementeringer (f.eks. GNU bash ) "frasiger" skallen sig alle underordnede opgaver før den afsluttes (og de fortsætter med at køre) .

SIGHUP kan blive fanget eller ignoreret af programmet.

For at forhindre standardprogrammer og hjælpeprogrammer i at afslutte SIGHUP , er der et hjælpeprogram nohup(et "præfiks" for et program på kommandolinjen). nohupkonfigurerer SIGHUP til at blive ignoreret og kører derefter programmet med argumenter i baggrunden med output omdirigeret til en fil nohup.outi brugerens nuværende eller hjemmemappe.