linux 服务开机自启由 systemd 统一管理,启用用 systemctl enable(可加 –now 立即启动),禁用用 disable,状态通过 is-enabled/is-active 查看,自定义服务需先创建 unit 文件并 daemon-reload。

Linux 服务开机自启主要通过 systemd 管理,不同发行版操作一致,关键是掌握启用、禁用、状态查看和手动触发的命令逻辑。
启用服务开机自启
使用 systemctl enable 命令将服务写入启动目标(如 multi-user.target),系统下次启动时自动拉起该服务。
- 启用并立即启动:sudo systemctl enable –now nginx
- 仅启用(不立即启动):sudo systemctl enable sshd
- 启用时指定启动级别(如图形界面):sudo systemctl enable –now myapp.service –now –no-block(一般无需指定,默认适配)
禁用或取消自启
禁用不会停止正在运行的服务,只移除开机触发链接。
- 禁用自启:sudo systemctl disable docker
- 禁用并立即停止:sudo systemctl disable –now chrony
验证是否生效
启用 / 禁用后建议检查状态,确认服务单元文件存在且链接已创建。
- 查看服务当前启用状态:systemctl is-enabled nginx(返回 enabled/disabled)
- 查看是否正在运行:systemctl is-active nginx(返回 active/inactive)
- 列出所有已启用的服务:systemctl list-unit-files –type=service | grep enabled
自定义服务需先确保单元文件就位
若服务无预置 unit 文件(如自己写的脚本),需先创建/etc/systemd/system/myscript.service,再执行 enable。
- 最小可用模板示例:
- [Unit]
Description=My Custom Script
After=network.target[Service]
Type=simple
ExecStart=/opt/bin/myscript.sh
Restart=on-failure[Install]
WantedBy=multi-user.target - 保存后重载配置:sudo systemctl daemon-reload
- 再执行sudo systemctl enable myscript






























