Kelly Mears

Daemon

A long-running background process managed by the operating system's service supervisor.

Systems & Tooling1 min read198 words15 out · 13 in
also calledBackground serviceLaunch agent

A daemon is a program that runs in the background rather than attached to a session, typically started and supervised by the operating system: systemd on Linux, launchd on macOS, the service manager on Windows.

Supervision is the feature and the complication. A supervisor can restart a service when it exits unexpectedly, which turns an occasional crash into an invisible blip — genuinely useful when an underlying framework is unreliable. It also means the process cannot simply be killed: a signal reads as a crash and triggers a restart, so stopping it requires either a clean exit or unloading the job from the supervisor.

Registration is where the subtle failures live. A supervisor records the path it was told about, and if that path was captured in an unusual context — a sandboxed shell with a remapped home directory, for example — the record points at somewhere that does not exist. Every subsequent launch then fails, silently and quickly, and the fix requires clearing the registration rather than reinstalling the program. Registering from a normal launch, rather than by executing the binary directly, avoids the whole class of problem.

Scheduled work is the daemon's near relative; see Cron.

See also14

Truncation Bias

Reading a truncated result as if it were the whole result, so every counterexample is invisible.

Method28 connections

Process

A running program with its own memory, environment, and identity.

Systems & Tooling33 connections

Code Signing

Cryptographically attesting who produced a binary, and the operating-system checks built on it.

Systems & Tooling27 connections

Observability

How much of a system's internal state can be inferred from what it emits.

Method32 connections

Silent Failure

A failure that produces no signal, so the absence of an error reads as success.

Method73 connections

Resource Starvation

Failures caused by competition for a finite shared resource rather than by any defect.

Testing & Verification18 connections

Ground Truth

The measurement that arbitrates, as opposed to the artifact that merely reports.

Method99 connections

Root Cause Analysis

Escalating past the visible symptom until you find the layer that actually produced it.

Method49 connections

Instrumentation

Adding measurement to code so its execution can be observed, and the distortions that introduces.

Testing & Verification19 connections

Terminal Multiplexer

A program that runs many terminal sessions inside one window, splits it into panes, and keeps the sessions alive on a server after the connection drops, so long jobs and remote work survive disconnection.

Systems & Tooling10 connections

Sound Server

The background service that sits between applications and audio hardware, mixing many programs' sound together, routing it to the right speakers or headphones, and handling volume, device switching and latency.

Systems & Tooling8 connections

File Watching

How programs learn that files changed, by polling or by kernel notification interfaces such as inotify and FSEvents, and the many ways those notifications get lost, delayed, or exhausted.

Systems & Tooling8 connections

Web Server

The program that listens for HTTP requests and answers them with files or generated pages, from the first one at CERN in 1990 through Apache's long dominance to event-driven servers built to hold many thousands of connections at once.

Web Platform10 connections

Pseudoterminal

The kernel device pair that lets a terminal window, SSH session, or tmux pane pretend to be a 1970s hardware terminal, and why programs behave differently when they are not attached to one.

Systems & Tooling12 connections

Linked from13