Linux 设置开机自启动服务方法

9次阅读

linux 开机自启服务主要通过 systemd 的 systemctl enable 实现,需先确认服务正常运行并配置好 unit 文件;启用后系统启动时自动拉起,可用 –now 参数同时启用并启动,disable 可撤销自启设置。

Linux 设置开机自启动服务方法

Linux 设置开机自启动服务,核心是让系统在启动时自动运行指定程序或脚本。不同发行版机制略有差异,但主流已统一使用 systemd,因此重点围绕 systemctl 操作展开。

确认服务已安装并可手动运行

在设为自启前,先确保服务能正常工作:

  • 检查服务文件是否存在(通常在 /usr/lib/systemd/system//etc/systemd/system/
  • 手动启动测试:sudo systemctl start 服务名
  • 查看状态:sudo systemctl status 服务名 ,确认显示 active (running)
  • 若服务是自定义脚本,需先写好 systemd unit 文件(如 /etc/systemd/system/myapp.service),包含 [Unit][Service][Install] 三段

启用开机自启动(systemd 标准方式)

启用即注册到启动目标(通常是 multi-user.target),系统启动时自动拉起:

  • sudo systemctl enable 服务名 —— 创建软链接到 /etc/systemd/system/xxx.target.wants/
  • 启用后重启验证:sudo reboot,再登录执行 systemctl is-active 服务名 看是否为 active
  • 若只需开机启动但不立即运行,用 enable 即可;如需启用并立刻启动,加 --nowsudo systemctl enable --now 服务名

禁用或取消自启动

误启用或不再需要时可快速撤销:

  • sudo systemctl disable 服务名 —— 移除软链接,不影响当前运行状态
  • 若同时想停止正在运行的服务:sudo systemctl disable --now 服务名
  • 注意:disable 不会删除服务文件,只是解除启动关联

旧式 SysVinit 兼容(仅限极少数老系统)

部分 CentOS 6、Debian 7 等仍用 init.d,现基本不推荐,仅作了解:

  • 将脚本放入 /etc/init.d/,添加执行权限:sudo chmod +x /etc/init.d/ 脚本名
  • 使用 update-rc.d(Debian/Ubuntu):sudo update-rc.d 脚本名 defaults
  • 或使用 chkconfig(RHEL/CentOS 6):sudo chkconfig 脚本名 on
  • 现代系统即使保留 init.d 脚本,systemd 也会通过 generator 自动适配,优先走 systemd 流程
text=ZqhQzanResources