Auto-sync: 2026-04-16 21:08
This commit is contained in:
46
wiki/concepts/Socket-Activation.md
Normal file
46
wiki/concepts/Socket-Activation.md
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
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]]
|
||||
Reference in New Issue
Block a user