systemd 服务管理教程:从 systemctl 到自己写服务
摘要
systemctl 是现代 Linux 运维每天都要用的工具。本教程依据 systemd 官方文档,介绍服务的启停重启、开机自启(enable --now)、查看服务列表、手写一个自定义 .service 文件(ExecStart/Restart/User 等关键字段),以及 journalctl 查看日志的方法。
systemd 服务管理教程
现代 Linux 发行版(Debian、Ubuntu、CentOS、RHEL、Fedora、Arch 等)默认都使用 systemd 作为初始化系统。管理服务的 systemctl 命令,是服务器运维每天都要打交道的工具。本教程依据 systemd 官方文档整理。
一、查看与启停服务
服务名可以省略 .service 后缀,systemctl status nginx 和 nginx.service 等价。
二、开机自启
enable 只是建立开机自启的链接,不会立刻启动服务——这就是 enable --now 存在的意义。
三、查看所有服务
四、写一个自己的服务
在 /etc/systemd/system/ 下新建 myapp.service:
关键字段说明:
ExecStart:启动命令,必须用绝对路径Restart=on-failure:异常退出时自动重启,always则无论怎么退都重启User:以哪个用户身份运行,服务不要用 root 跑WantedBy=multi-user.target:enable 时挂到开机流程里
写完之后执行:
修改了 .service 文件后,也要先 daemon-reload 再 restart。
五、看日志:journalctl
systemd 统一收集了所有服务的日志:
六、总结
需求 | 命令 |
|---|---|
看状态 |
|
启动/停止/重启 |
|
开机自启 |
|
自定义服务 | 写 |
查日志 |
|
把常驻程序写成 systemd 服务,系统崩溃重启、程序异常退出都能自动拉起,是比 nohup、screen 优雅得多的方案。
