当前位置:首页>Linux>为什么 Linux 里很多程序后面都带一个 d

为什么 Linux 里很多程序后面都带一个 d

  • 2026-09-17 09:17:57
为什么 Linux 里很多程序后面都带一个 d

我在服务器上敲命令时,突然意识到一个很奇怪的现象。

系统里到处都是这样的名字:

  • systemd

  • journald

  • sshd

  • crond

  • dockerd

  • tailscaled

它们的名字后面,都带着一个孤零零的字母 d

这肯定不是巧合,于是我深入探查了一番,最终发现:

d 的背后,是一段从 1970 年代延续至今的 Unix 传统。

一、d 是 daemon 的缩写

daemon 这个词来源于古希腊语 daimon,意思是:

守护灵、在暗中运作的力量。

当年 Unix 的设计者借用了这个词,来形容一类特殊的程序:

  • 它们不占用终端

  • 它们不等待你输入

  • 它们在后台默默运行

  • 它们从系统启动那一刻就开始工作

就像一群看不见的守护精灵。

于是,Unix 给了它们一个名字:

daemon 守护进程

如果我运行一个普通命令,比如:

  • ls

  • ping

  • top

这些程序执行完就结束,或者占着终端。

但有些程序不是。

比如:

  • SSH 服务

  • Web 服务器

  • 定时任务系统

  • 日志系统

它们必须一直运行。

它们不能执行完就退出。

它们要:

  • 等待请求

  • 维持连接

  • 处理网络

  • 记录日志

  • 管理资源

这些程序不需要你时刻盯着。

它们自己在后台工作。

所以它们是 daemon。

二、为什么只留下一个字母?

早期 Unix 崇尚一件事:简洁。

如果每个程序都叫:

  • ssh-daemon

  • http-daemon

  • cron-daemon

那命令行会变得很长。

于是形成了一种习惯:daemon → d

于是我们今天看到:

  • sshd(SSH daemon)

  • httpd(HTTP daemon)

  • crond(Cron daemon)

  • named(Name daemon,DNS 服务)

  • syslogd(日志守护进程)

这是工程师之间的默契。

看到 d,就知道这是后台核心服务。

三、现代软件为什么还在延续这个传统?

即便到了今天,这个习惯仍然存在。

比如:

  • dockerd —— Docker 后台进程

  • journald —— 日志守护进程

  • tailscaled —— Tailscale 网络守护进程

以 Tailscale 为例,它其实分成两个角色:

命令
作用
tailscale
控制工具
tailscaled
后台核心进程

真正维持隧道、保持网络连接的,是后者。

也就是说:

前者是遥控器,后者才是机器本体。

这种命名方式,其实是一种角色区分。

四、这不仅仅是命名,而是一种文化

在 Linux 世界里,名字从来不是随便起的。

名字一般要做到:

  • 简短

  • 清晰

  • 可组合

  • 可预期

当我看到一个程序名以 d 结尾,我几乎可以断定:

它是长期运行的后台服务。

这是一种工程文化的传承。

五、它为什么能活到今天?

因为 Unix 有一个特点:向后兼容 + 尊重传统

Linux 继承了 Unix 的文化。

而工程文化一旦形成,就会成为默认规则。

当新的软件开发者要写一个后台服务时,

几乎是下意识地:那就加个 d 吧。

于是几十年后,我们的服务器里仍然住着一群守护精灵。

Linux 里那些以 d 结尾的程序,

不是巧合,不是随便,也不是缩写游戏。

它们是 Unix 时代留下的一种工程语言。

一个字母 d 代表的是:

  • 后台运行

  • 长期驻留

  • 系统核心

  • 默默守护

在服务器世界里,真正重要的,往往都是那些不被看见的东西。

最新文章

随机文章