--- title: "Socket Activation" type: concept tags: [systemd, activation, optimization] date: 2026-04-16 --- ## Definition Socket Activation(套接字激活)是 systemd 的一种按需启动机制,只有当客户端首次请求连接时,服务才会被启动。与传统的开机自启相比,可以减少系统资源占用。 ## Mechanism 1. systemd 创建监听套接字 2. 客户端发起连接请求 3. systemd 接收连接并启动服务进程 4. 连接传递给已启动的服务 ## Use Cases - SSH(ssh.socket) - D-Bus 系统消息总线 - 打印服务(cups.socket) ## Advantages - 减少内存占用 - 按需启动,节能 - 简化服务依赖管理 ## Comparison with Traditional Mode | 特性 | Socket Activation | 传统开机自启 | |------|------------------|-------------| | 启动时机 | 按需启动 | 开机启动 | | 资源占用 | 低 | 常驻内存 | | 响应速度 | 首次延迟 | 即时响应 | ## Example ```bash # 启用 socket 激活(默认) sudo systemctl enable ssh.socket # 切换回传统模式 sudo systemctl disable ssh.socket sudo systemctl enable ssh.service ``` ## Connections - [[systemd]] ← implements ← [[Socket Activation]] - [[SSH]] ← uses ← [[Socket Activation]]