Fact-checked by Grok 2 weeks ago

SIGHUP

SIGHUP is a POSIX-defined signal in operating systems, assigned the number 1, that notifies a of a hangup condition, such as the closure of its controlling or the death of the controlling process. The default action upon receipt of SIGHUP is to terminate the process abnormally, typically with an indicating termination by the signal. Historically rooted in early Unix systems, SIGHUP was designed to inform processes of a serial line disconnection, known as a "hangup," which could occur when a connection was lost. In modern contexts, the kernel sends this signal to all processes in the foreground when driver detects such an event, for instance, during user logout or network session termination. Processes can handle SIGHUP via signal handlers, allowing them to perform cleanup or other actions before termination. Beyond its original purpose, SIGHUP has become a conventional mechanism for daemon processes to reload configuration files without interrupting service. For example, the NGINX web server responds to SIGHUP by re-reading its configuration and starting new worker processes while gracefully shutting down old ones, enabling zero-downtime updates. Similarly, tools like the kill utility allow administrators to send SIGHUP manually to trigger these behaviors in running services. This usage aligns with best practices for system administration, promoting reliability in long-running applications.

Overview

Definition and Purpose

SIGHUP, short for "signal hangup," is a POSIX-defined signal sent to a to indicate that its controlling has closed or that the controlling process has terminated. Historically rooted in notifying processes of a serial line disconnection—referred to as a "hangup"—it has evolved to serve a broader role in signaling loss of process control, such as in daemon management where it often triggers configuration reloads without termination. In POSIX.1-1990, SIGHUP is standardized as signal number 1 across compliant systems, with a default action of terminating the receiving to facilitate cleanup. The primary purpose of SIGHUP is to ensure orderly termination of processes tied to a session when the controlling becomes unavailable, preventing orphaned or lingering computations that could consume resources. This mechanism promotes system hygiene by prompting processes to release resources and exit gracefully upon detecting session loss. For instance, in an interactive environment, when a logs out, the sends SIGHUP to all foreground and certain background jobs (unless explicitly disowned), enabling them to terminate and clean up associated files or connections. Unlike SIGTERM, which requests general process termination, SIGHUP specifically addresses terminal-related disruptions, though both default to process termination.

Signal Mechanics

SIGHUP is an asynchronous signal delivered by the operating system's through its standard signal mechanism, which interrupts the normal execution of a or upon receipt. This delivery occurs when the detects specific events, such as a hangup on the controlling , and the signal is transmitted as a process-directed notification to an unblocked within the target . In the delivery process, the sends SIGHUP to all members of the foreground associated with the terminal, ensuring that related processes are notified collectively. For standard signals like SIGHUP, the maintains a pending signal set using bitmasks; multiple instances generated while blocked result in only one pending signal. signals, however, support queued delivery of multiple instances in order. Upon kernel-to-user-space transitions, such as returns, the checks for pending signals and delivers them if unblocked, invoking a handler or default action as appropriate. Processes can block SIGHUP to prevent its delivery using system calls like sigprocmask(2) in single-threaded programs or pthread_sigmask(3) in multithreaded environments, which modify the signal mask to add SIGHUP to the blocked set until explicitly unblocked. Blocking defers delivery without discarding the signal, which remains pending in the process's signal set. If no custom handler is installed for SIGHUP, the default action upon receipt is to terminate the process without generating a , distinguishing it from signals like SIGSEGV that produce a core file for . This behavior aligns with POSIX.1-1990 standards for reliable signal handling.

History

Origins in Early Unix

SIGHUP was introduced in Version 4 of Unix in 1973 by developers at Bell Labs as part of the evolving signal system designed to handle asynchronous events, including terminal-related interruptions. The signal system provided mechanisms for processes to respond to hardware faults and user-initiated events, with early signals like interrupt (SIGINT) and quit (SIGQUIT) enabling programs to catch or ignore them via dedicated system calls. SIGHUP, designated as signal number 1, was specifically modeled after teletype "hangup" events, where a physical disconnection of the serial line—common in the era's terminal setups—would signal the end of a user session, emphasizing its critical role in session management and process termination. In , released in 1975, the implementation of SIGHUP became more explicitly tied to (tty) driver, which monitored the carrier detect line for loss of connection. Upon detecting such a hangup, the driver would send SIGHUP to all processes in the foreground , ensuring that interactive programs could terminate gracefully or perform cleanup before exiting. This mechanism was defined in the system's parameter header, where SIGHUP is enumerated as signal 1 with the comment "hangup," reflecting its origin in notifying processes of disconnections. The tty driver's handling integrated with broader signal delivery routines, allowing processes to register handlers for SIGHUP alongside other signals like SIGINT for rubout (interrupt). The design of SIGHUP and the early Unix signal system drew influences from the operating system, where more complex and features inspired Unix's developers, but was significantly simplified to accommodate the constraints of the PDP-11 , such as limited and power. This simplification prioritized essential terminal event handling without the overhead of Multics' segmented addressing or comprehensive protection rings, making SIGHUP a lightweight yet effective tool for managing session lifecycle in a multi-user environment.

Standardization and Evolution

SIGHUP was first formally standardized in POSIX.1-1988 (IEEE Std 1003.1-1988), where it was designated as signal number 1 with a default action of abnormal termination (denoted as "T" in the standard's signal table). This specification ensured portability across conforming systems by mandating SIGHUP's behavior as a notification for hangup events on the controlling terminal, requiring implementations to deliver the signal reliably to processes. During the 1980s, (BSD) Unix extended SIGHUP's role to support job control facilities, introduced in releases like 4.1BSD (1981), where interactive shells would propagate the signal to background or stopped jobs upon logout or terminal closure to facilitate process cleanup. The nohup utility, introduced in early Unix versions such as Version 5 (1974), allows long-running processes to ignore SIGHUP and persist beyond session termination without modification; this utility sets the signal disposition to ignored before invoking the target command and was later standardized in . The , initiated in 1991, inherited SIGHUP's core semantics from both System V and BSD traditions, maintaining its default termination action while adhering to POSIX.1-1990 requirements. To support extensions outlined in POSIX.1-2001, introduced enhancements like the SA_SIGINFO in the sigaction() , enabling signal handlers to receive additional context (e.g., sender process ID and signal value) for more precise handling of SIGHUP and other signals in concurrent environments. Modern platforms such as macOS and uphold POSIX compliance for SIGHUP, with signal number 1 and default termination, though macOS integrates it into the kernel's hybrid architecture via a BSD compatibility layer for user-space interfaces, introducing minor adaptations for Mach task management without altering core signal delivery. similarly prioritizes .1 conformance in its kernel signal handling, ensuring SIGHUP's propagation aligns with standard expectations while supporting extensions for contemporary job control.

Generation

The primary trigger for generating a SIGHUP signal occurs when a process's controlling is closed, such as during user logout from a using the exit command or by pressing Ctrl+D in . This event is detected by the , which sends the signal to the entire foreground associated with the session via the tty (teletype) layer. Specifically, the signal is generated when the session leader process exits or when the carrier signal on the terminal line is lost, ensuring that processes tied to the terminal are notified of the disconnection. Additional triggers include the termination of remote sessions, such as in SSH or connections, where the network disconnection effectively closes the pseudo-terminal, prompting the to issue SIGHUP to the relevant . A key example arises in multi-user systems, where a logging out from their sends SIGHUP to all processes in the foreground , including any subshells and their child processes, unless the signal is explicitly ignored by those processes. By default, receipt of SIGHUP terminates these processes, cleaning up session resources upon terminal closure.

Manual and Programmatic Sending

SIGHUP can be sent manually from the command line using the kill utility, a POSIX-standard tool that transmits signals to specified processes or process groups. To target a specific process, the command kill -HUP <pid> or equivalently kill -1 <pid> is employed, where <pid> is the process identifier obtained via tools like ps. For sending to an entire process group, kill -HUP -<pgid> is used, with <pgid> denoting the process group ID. Programmatically, applications can dispatch SIGHUP using system calls defined in POSIX. In C, the kill() function from <signal.h> sends the signal to a single process: kill(pid, SIGHUP);, where pid is the target process ID and SIGHUP (or 1) specifies the signal. To broadcast to a process group, killpg(pgid, SIGHUP); is invoked, requiring <sys/types.h> and appropriate privileges for the sender. These calls enable inter-process communication for tasks like reconfiguration without relying on terminal events. In shell environments like Bash, SIGHUP transmission leverages job control features. The built-in kill command supports kill -HUP %<job> to signal a background job by its specifier (e.g., %1 for the first job), facilitating management of suspended or running tasks. This integrates with Bash's job control, where jobs lists active jobs for identification.

Handling and Behavior

Default Process Response

Upon receiving the SIGHUP signal without a custom handler, a process undergoes immediate abnormal termination, equivalent to invoking the _exit() function with an implementation-defined status indicating termination due to the signal. This action does not generate a core dump file, distinguishing SIGHUP from signals like SIGSEGV or SIGABRT that include core dumping by default. The POSIX standard mandates this termination behavior for SIGHUP, ensuring no automatic invocation of cleanup routines such as those registered via atexit() or flushing of open streams, as the process ends abruptly without executing normal exit processing. Receipt of SIGHUP also interrupts any ongoing system calls in the process, typically returning an EINTR error to allow the calling code to handle the interruption if applicable. Following termination, the process enters a zombie state, retaining a minimal entry in the process table until its parent reaps it via wait() or waitpid(), at which point resources are fully released. In practice, this default response extends to undetached child processes in scenarios like an interactive shell receiving SIGHUP upon user logout; the shell terminates while first propagating SIGHUP to its jobs (running or stopped processes), causing them to terminate unless they ignore the signal. For example, a simple foreground shell script, such as one echoing output in a loop, will exit immediately upon SIGHUP from terminal closure, freeing associated resources without further execution.

Custom Signal Handlers

In systems, developers can override the default response to SIGHUP by installing custom signal handlers using the signal() or sigaction() functions in C. The signal() function provides a simpler interface for setting a handler but may not offer full control over signal disposition, while sigaction() allows more precise configuration, including flags like SA_RESTART, which ensures that certain interrupted system calls are automatically restarted rather than returning an error. Common patterns for SIGHUP handlers include reloading configuration files, reopening log files to rotate them without downtime, or performing a graceful shutdown by closing resources and exiting the process. For instance, a basic C handler using sigaction() might look like this, where the handler simply prints a message and exits:
c
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

void sighup_handler(int sig) {
    write(STDERR_FILENO, "Received SIGHUP, reloading configuration...\n", 41);
    // Perform reload logic here
    exit(0);
}

int main() {
    struct sigaction sa;
    sa.sa_handler = sighup_handler;
    sigemptyset(&sa.sa_mask);
    sa.sa_flags = SA_RESTART;
    sigaction(SIGHUP, &sa, NULL);
    while (1) {
        sleep(1);  // Main loop
    }
    return 0;
}
This example sets the handler with SA_RESTART to resume interrupted calls like sleep(). Under POSIX standards, signal handlers execute in a separate execution context from the interrupted process, which can lead to race conditions or deadlocks if non-reentrant functions are called; therefore, handlers must invoke only async-signal-safe functions, such as write() or signal(), to ensure reliability. In higher-level languages, similar interception is supported. For Node.js, the process.on('SIGHUP', handler) method registers a callback to handle the signal, often used for reloading modules or configurations without terminating the process. In Python, the signal.signal(signal.SIGHUP, handler) function installs a custom handler, enabling responses like reconfiguration in long-running scripts.

Applications

Usage in Daemons and Servers

In systems, daemons—long-running background processes such as network servers—typically detach from any controlling during initialization by invoking the setsid() , which establishes a new session and leader, thereby immunizing them against the automatic SIGHUP delivered upon hangup or logout. This detachment ensures uninterrupted operation independent of sessions, while preserving the ability to receive manually dispatched SIGHUP signals for administrative purposes. A prevalent convention among daemons is to interpret manually sent SIGHUP as a cue to reload files without terminating the process, enabling seamless updates in environments. This pattern is integrated into modern init systems like , where SIGHUP is commonly used as the reload signal for services via the ExecReload= directive, allowing administrators to apply changes—such as updated parameters or certificates—without by executing commands like systemctl reload <service>. Prominent examples illustrate this usage in network services. The , upon receiving SIGHUP at its master , validates and reloads its configuration files, then gracefully restarts worker processes to incorporate changes while handling existing connections uninterrupted. Likewise, the daemon (sshd) responds to SIGHUP by re-executing itself with the original startup arguments, thereby rereading /etc/ssh/sshd_config to apply modifications, including host key rotations, without disrupting active sessions.

Configuration Management Patterns

One prominent configuration management pattern utilizing SIGHUP is the reload pattern, where a long-running intercepts the signal to reread its files and apply changes dynamically without interrupting ongoing operations. This approach enables hot-reloading, allowing administrators to update settings—such as bindings, levels, or limits—while the continues serving requests, avoiding the full termination associated with signals like SIGTERM. To ensure atomicity and zero-downtime updates, processes often implement the pattern by forking child instances that load the new configuration; existing children handle legacy requests until they complete, after which they exit gracefully. For instance, the employs this on SIGHUP by reloading its configuration and spawning new worker processes, which inherit the updated settings while old workers phase out. This pattern is particularly valuable in logging daemons, where SIGHUP prompts reopening of log files after rotation, preventing data loss or writes to archived files without requiring a restart. Tools like logrotate automate this by executing post-rotation scripts that send SIGHUP to affected daemons, such as syslogd. Key implementations include the Postfix mail transfer agent, which rereads its main.cf and master.cf files on SIGHUP, terminating only removed services immediately while allowing others to finish naturally, thus applying map and queue changes seamlessly. Additionally, custom scripts scheduled via jobs can periodically send SIGHUP to processes, enabling automated checks and reloads for evolving configurations in non-daemon environments. Best practices for SIGHUP handlers emphasize idempotency, ensuring that repeated signals produce consistent results without side effects, such as duplicate reloads or resource leaks; this safeguards against accidental multiple transmissions during administrative tasks.

Comparison with Other Termination Signals

SIGHUP shares the default action of terminating the receiving with SIGTERM and SIGINT, both of which are standard termination signals designed to request process shutdown. However, SIGHUP is specifically triggered by the of a controlling or the death of the controlling process, making it inherently session- and terminal-oriented, whereas SIGTERM serves as a general-purpose termination request often initiated manually via tools like the kill command for graceful shutdowns across any context. This distinction positions SIGHUP as a more specialized signal for handling environmental changes in interactive sessions, while SIGTERM provides broader applicability for administrative or programmatic without ties to terminal state. In contrast to SIGINT, which is generated by user intervention such as pressing Ctrl+C to interrupt execution in the foreground, SIGHUP arises from passive system events like disconnection, emphasizing environmental disruption over active user intent. Both signals target the foreground by default when originating from —SIGINT for immediate interruption and SIGHUP for hangup notification—but their triggers differentiate their use cases: SIGINT for interactive during runtime, and SIGHUP for post-session cleanup. This makes SIGHUP less about user-driven abortion and more about ensuring processes respond to loss of their interactive environment. Like SIGTERM and SIGINT, SIGHUP is catchable and ignorable by , allowing custom handlers to perform cleanup or reconfiguration before termination, in sharp contrast to the non-ignorable SIGKILL, which forces immediate death without intervention. SIGHUP is frequently ignored via utilities like nohup to enable detached operation beyond sessions, a practice less common for SIGTERM or SIGINT due to their non-environmental triggers. This ignorability supports SIGHUP's role in reload patterns for daemons, where termination is avoided to facilitate configuration updates. A key operational difference lies in targeting: SIGHUP is automatically broadcast to the entire foreground upon hangup or session leader exit, ensuring coordinated response across related processes, while SIGTERM defaults to per-process delivery unless explicitly directed to a group via tools like kill -TERM -PGID. This group-oriented nature of SIGHUP aligns with its purpose in managing session-wide events, promoting collective termination or handling in multi-process interactions, unlike the individualistic focus of SIGTERM.

Platform-Specific Variations

Linux provides full POSIX-compliant support for SIGHUP, adhering to the standard semantics where the signal is generated upon terminal closure or process detachment from its controlling . Beyond POSIX, Linux extends signal handling with mechanisms like signalfd(), a Linux-specific introduced in 2.6.22 that creates a for reading pending signals, including SIGHUP, allowing integration with I/O multiplexing interfaces such as select(2), poll(2), and (7). This enables queued signal delivery without traditional handlers, provided signals are blocked via sigprocmask(2) to avoid default actions. enhances usability with wrapper functions for signalfd() since version 2.8, automatically employing the signalfd4() variant (available since 2.6.27) for additional flags like non-blocking and close-on-exec behavior starting from 2.9. BSD-derived systems, including and macOS, inherit core BSD semantics for SIGHUP, where the signal is delivered to foreground processes upon terminal hangup, and interactive shells propagate it to all child jobs—both running and stopped—before exiting upon receiving SIGHUP themselves. This propagation ensures background jobs are notified of session termination, differing slightly from some interpretations in shell-specific handling, such as csh or variants that may require explicit disowning to prevent forwarding. In macOS, built on the kernel combining with BSD layers, SIGHUP operates within the BSD subsystem for compatibility, but the platform supplements signal-based notifications with Mach-specific mechanisms like ports and messages for , though these do not directly alter SIGHUP delivery. Windows lacks a native SIGHUP equivalent in the Win32 API, relying instead on console control events such as CTRL_CLOSE_EVENT to simulate terminal closure, which layers map to SIGHUP for compatibility. In , which emulates a environment, SIGHUP is supported but exhibits variations in pseudo-terminal (PTY) handling; prior to patches around 2015, extraneous SIGHUP signals were generated during read/write operations on PTY slaves, deviating from standards that limit delivery to master-side closure when the slave is the controlling terminal. Subsequent updates aligned Cygwin's behavior more closely with systems like by deferring SIGHUP to PTY master close. Similarly, (WSL) emulates Linux signal semantics, including full SIGHUP support via its , but console events from the Windows host—such as window closure—trigger SIGHUP delivery to WSL processes attached to the pseudo-terminal. In , SIGHUP follows standards but incorporates platform-specific constraints related to and resource contracts; signals like SIGHUP sent from processes in the global zone to those in non-global are ignored unless the sender holds appropriate privileges, enhancing in containerized environments. This inter-zone signal restriction prevents cross-boundary control, differing from unified systems, while within a zone, SIGHUP behaves standardly for terminal-related events.

References

  1. [1]
    <signal.h>
    Signals defined here begin with the letters SIG. Each of the signals have distinct positive integer values. The value 0 is reserved for use as the null signal.
  2. [2]
    signal(7) - Linux manual page - man7.org
    1-1990 standard; "P2001" indicates that the signal was added or its definition changed in SUSv2 and POSIX. ... SIGHUP P1990 Term Hangup detected on ...Signal(2) · Sigaction(2) · Kill(2)
  3. [3]
    daemon - systemd - Freedesktop.org
    If SIGHUP is received, reload the configuration files, if this applies. This should be combined with notifications via sd_notify(3): RELOADING=1 and READY=1 .
  4. [4]
    Controlling nginx
    In order for nginx to re-read the configuration file, a HUP signal should be sent to the master process. The master process first checks the syntax validity, ...
  5. [5]
    kill - The Open Group Publications Catalog
    The `kill` command sends a signal to specified processes, using `kill -s signal_name pid...` or `kill -l [exit_status]`. It sends a signal to the process or ...
  6. [6]
    daemon(7) - Linux manual page - man7.org
    If SIGHUP is received, reload the configuration files, if this applies. This should be combined with notifications via sd_notify(3): RELOADING=1 and READY=1.
  7. [7]
    <signal.h>
    The <signal.h> header shall define the following macros that are used to refer to the signals that occur in the system.
  8. [8]
    bash(1) - Linux manual page - man7.org
    ... shell does not send SIGHUP to the job if the shell receives a SIGHUP. If no id is supplied, the -a option means to remove or mark all jobs; the -r option ...
  9. [9]
    pthread_sigmask
    ### Summary of sigprocmask for Blocking Signals like SIGHUP
  10. [10]
    pthread_sigmask
    The pthread_sigmask() function shall examine or change (or both) the calling thread's signal mask, regardless of the number of threads in the process.Missing: SIGHUP | Show results with:SIGHUP
  11. [11]
    [PDF] The UNIX Time- Sharing System
    The UNIX Time-. Sharing System. Dennis M. Ritchie and Ken Thompson. Bell Laboratories. UNIX is a general-purpose, multi-user, interactive operating system for ...
  12. [12]
    [PDF] A Research UNIX Reader - Dartmouth Computer Science
    Ritchie, “The Evolution of the UNIX Time-sharing System,” AT&T Bell Laboratories Techni- cal Journal, 63, part 2, pp. 11-17 (1984). UNIX special issue ...
  13. [13]
    V6/usr/sys/param.h
    ... signals * dont change */ #define NSIG 20 #define SIGHUP 1 /* hangup */ #define SIGINT 2 /* interrupt (rubout) */ #define SIGQIT 3 /* quit (FS) */ #define ...
  14. [14]
    [PDF] The Evolution of the Unix Time-sharing System*
    Dennis M. Ritchie. Bell Laboratories, Murray Hill, NJ, 07974. ABSTRACT. This paper presents a brief history of the early development of the Unix operating ...
  15. [15]
    nohup - The Open Group Publications Catalog
    The `nohup` utility invokes a utility, ignoring the SIGHUP signal, and may redirect standard input. It appends output to `nohup.out` or `$HOME/nohup.out`.
  16. [16]
    FreeBSD POSIX 2001 Utility Compliance
    FreeBSD aims to be as compliant as possible with only a minimized area of non-compliance. The following is the result of a comparison of the utility names and ...Missing: SIGHUP | Show results with:SIGHUP
  17. [17]
    close - The Open Group Publications Catalog
    If fildes refers to the manager side of a pseudo-terminal, and this is the last close, a SIGHUP signal shall be sent to the controlling process, if any, for ...
  18. [18]
    Shell Command Language
    Summary of each segment:
  19. [19]
    kill(1) - Linux manual page - man7.org
    The command kill sends the specified signal to the specified processes or process groups. If no signal is specified, the TERM signal is sent.Missing: SIGHUP | Show results with:SIGHUP
  20. [20]
    kill
    The kill() function shall send a signal to a process or a group of processes specified by pid. The signal to be sent is specified by sig.Missing: SIGHUP | Show results with:SIGHUP
  21. [21]
    kill(2) - Linux manual page - man7.org
    The kill() system call can be used to send any signal to any process group or process. If pid is positive, then signal sig is sent to the process with the ID ...<|separator|>
  22. [22]
    Stopping and Restarting Apache HTTP Server
    This document covers stopping and restarting Apache HTTP Server on Unix-like systems. Windows NT, 2000 and XP users should see Running httpd as a Service.
  23. [23]
    _Exit
    ### Summary of `_exit` Functionality
  24. [24]
  25. [25]
    sigaction
    The sigaction() function allows the calling process to examine and/or specify the action to be associated with a specific signal.
  26. [26]
    sigaction(2) - Linux manual page - man7.org
    The glibc wrapper function for sigaction() gives an error (EINVAL) on attempts to change the disposition of the two real-time signals used internally.Missing: AT&T | Show results with:AT&T
  27. [27]
    signal-safety(7) - Linux manual page - man7.org
    An async-signal-safe function is one that can be safely called from within a signal handler. Many functions are not async- signal-safe. In particular, ...
  28. [28]
    Process | Node.js v25.1.0 Documentation
    The process object provides information about, and control over, the current Node.js process. import process from 'node:process'; const process = require('node ...
  29. [29]
    signal — Set handlers for asynchronous events — Python 3.14.0 ...
    The signal.signal() function allows defining custom handlers to be executed when a signal is received. A small number of default handlers are installed.
  30. [30]
    Chapter 13. Daemon Processes - Shichao's Notes
    To avoid this, some daemons will catch SIGHUP and reread their configuration files when they receive the signal. Since they aren't associated with terminals and ...
  31. [31]
    Postfix manual - master(8)
    Signals: SIGHUP Upon receipt of a HUP signal (e.g., after "postfix reload"), the master process re-reads its configuration files. If a service has been ...
  32. [32]
    SIGHUP Signal for Configuration Reloads - by Phuong Le - Devtrovert
    Apr 22, 2025 · SIGHUP is a signal caught between two worlds. It was born from the physical "hang up" of terminal lines, and its original meaning—the loss of a ...Missing: history | Show results with:history
  33. [33]
    Inside NGINX: How We Designed for Performance & Scale
    Jun 10, 2015 · When the master process receives a SIGHUP, it does two things: Reloads the configuration and forks a new set of worker processes. These new ...
  34. [34]
    logrotate(8) - Linux manual page - man7.org
    It allows automatic rotation, compression, removal, and mailing of log files. Each log file may be handled daily, weekly, monthly, or when it grows too large.Options Top · Configuration File Top · Configuration File...
  35. [35]
    SIGHUP for reloading configuration - linux - Stack Overflow
    Sep 27, 2013 · SIGHUP is commonly used to request that a daemon reload its configuration. Using this well-known technique follows the principle of least surprise.How to restart C daemon program in Linux after receiving SIGHUP ...How can I reload a system daemon? - Stack OverflowMore results from stackoverflow.com
  36. [36]
    Extending Traditional Signals (Multithreaded Programming Guide)
    It is best to use sigsetjmp() and siglongjmp() when you work with signal handlers. Completion semantics are often used to deal with exceptions. In ...Missing: practices | Show results with:practices
  37. [37]
    Termination Signals (The GNU C Library)
    ### Summary of Termination Signals
  38. [38]
    signalfd(2) - Linux manual page - man7.org
    Starting with glibc 2.9, the signalfd() wrapper function will use signalfd4() where it is available. STANDARDS top. Linux. HISTORY top. signalfd() Linux 2.6.22, ...Missing: SIGHUP | Show results with:SIGHUP
  39. [39]
  40. [40]
    Background process question | The FreeBSD Forums
    Aug 20, 2009 · When the shell receives a SIGHUP, it sends a SIGHUP to all its children too (you can test this manually), which kills them unless they're ...How to start and run a process in the background and continue to ...Other - csh bug? | The FreeBSD ForumsMore results from forums.freebsd.org
  41. [41]
    cygwin-2 process handling (about SIGHUP) - Sourceware
    Jun 7, 2015 · cygwin-2 process handling (about SIGHUP) · Previous message (by thread): XWin Server fails to start with keymap failure, strace log attached.
  42. [42]
    Windows Subsystem for Linux Documentation - Microsoft Learn
    May 19, 2025 · Windows Subsystem for Linux (WSL) lets developers run a GNU/Linux environment directly on Windows, without a virtual machine or dual-boot.Install WSL · Install Linux on Windows Server · Run Linux GUI apps with WSL<|separator|>