470 字
2 分钟
systemd 服务管理速查
这篇用来复制 systemd 服务管理命令。
查看服务状态
sudo systemctl status SERVICE例如:
sudo systemctl status dockersudo systemctl status nginx启动、停止、重启
启动:
sudo systemctl start SERVICE停止:
sudo systemctl stop SERVICE重启:
sudo systemctl restart SERVICE重新加载配置:
sudo systemctl reload SERVICE如果不确定服务是否支持 reload:
sudo systemctl reload-or-restart SERVICE开机启动
启用开机启动:
sudo systemctl enable SERVICE禁用开机启动:
sudo systemctl disable SERVICE立即启用并启动:
sudo systemctl enable --now SERVICE查看是否开机启动:
systemctl is-enabled SERVICE查看是否正在运行:
systemctl is-active SERVICE查看日志
查看服务日志:
journalctl -u SERVICE实时跟随:
journalctl -u SERVICE -f看最近 100 行:
journalctl -u SERVICE -n 100从今天开始:
journalctl -u SERVICE --since today指定时间范围:
journalctl -u SERVICE --since "2026-05-20 10:00" --until "2026-05-20 12:00"查看失败服务
systemctl --failed重置 failed 状态:
sudo systemctl reset-failed查看服务环境变量
sudo systemctl show --property=Environment SERVICE查看完整配置:
systemctl cat SERVICE修改服务后重载 systemd
sudo systemctl daemon-reload修改 service 文件或 drop-in 配置后,都需要执行这个命令。
创建自定义 service
sudo nano /etc/systemd/system/myapp.service示例:
[Unit]Description=My AppAfter=network.target
[Service]WorkingDirectory=/opt/myappExecStart=/usr/bin/node server.jsRestart=alwaysRestartSec=5Environment=NODE_ENV=production
[Install]WantedBy=multi-user.target启用:
sudo systemctl daemon-reloadsudo systemctl enable --now myapp查看:
sudo systemctl status myappjournalctl -u myapp -fdrop-in 覆盖配置
创建覆盖目录:
sudo systemctl edit SERVICE示例:
[Service]Environment="HTTP_PROXY=http://127.0.0.1:10808"Environment="HTTPS_PROXY=http://127.0.0.1:10808"保存后:
sudo systemctl daemon-reloadsudo systemctl restart SERVICE常用参数解释
systemctl status:查看服务状态和最近日志。
start:启动服务。
stop:停止服务。
restart:重启服务。
reload:重新加载配置,不一定重启进程。
enable:设置开机启动。
disable:取消开机启动。
enable --now:设置开机启动并立即启动。
journalctl -u:查看某个服务日志。
-f:实时跟随日志。
-n 100:显示最近 100 行。
daemon-reload:重新加载 systemd 单元文件。
Restart=always:服务退出后自动重启。
WantedBy=multi-user.target:让服务进入常规多用户启动目标。