用 systemd 管好 Linux 常驻服务的三个小习惯
做运维或自己搭服务时,很多人习惯用 nohup 或直接开终端跑进程。机器一重启,服务就没了;日志散落在各处,出问题也不好查。把常驻进程交给 systemd,通常更省心。下面三个习惯,够应对多数自建服务。
1. 用 unit 文件描述服务,而不是手敲长命令
在 /etc/systemd/system/ 下放一个 .service 文件,写清 ExecStart、工作目录、运行用户。改完后执行 systemctl daemon-reload,再用 systemctl enable --now 服务名 开机自启并立刻拉起。好处是:重启可预期、依赖顺序可声明、失败重启策略也能写在 unit 里。
示例骨架:
[Unit]
Description=My App
After=network.target
[Service]
Type=simple
User=app
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/bin/server
Restart=on-failure
[Install]
WantedBy=multi-user.target
2. 日志交给 journal,少自己重定向文件
默认情况下,服务的标准输出和标准错误会进 journal。查问题用 journalctl -u 服务名 -f 即可实时看;加 -b 只看本次开机,加 --since today 看今天。需要长期归档时再配 StandardOutput=append:/var/log/…,日常先用 journal 往往就够。
3. 改配置先 reload / restart,并确认 Active 状态
改完配置别假设「已经生效」。对支持热加载的服务用 systemctl reload;多数程序用 systemctl restart。然后用 systemctl status 服务名 看是否 active (running),再用一次健康检查(HTTP、端口或业务命令)确认真的起来了。把这三步当成固定收尾,能少踩「改了但没重启」的坑。
小结:unit 描述服务、journal 看日志、改完必确认状态。这三件事做稳了,自建 Linux 服务会清爽很多,也更适合接到监控和自动化脚本里。
- 点赞
- 收藏
- 关注作者
评论(0)