温馨提示×

debian进程如何设开机启动

小樊
34
2026-10-13 10:56:53
栏目: 智能运维

在 Debian 中,设置进程开机启动的方式取决于你使用的 init 系统版本(现在绝大多数 Debian 都用 systemd)。下面按常见情况说明。


一、Debian 使用 systemd(推荐,Debian 8+ 默认)

1️⃣ 创建一个 systemd 服务文件

假设你要开机启动 /opt/myapp/run.sh

sudo nano /etc/systemd/system/myapp.service

内容示例:

[Unit]
Description=My App Service
After=network.target

[Service]
ExecStart=/opt/myapp/run.sh
WorkingDirectory=/opt/myapp
Restart=on-failure
User=myuser

[Install]
WantedBy=multi-user.target

说明:

  • ExecStart:要执行的命令或脚本
  • User:以哪个用户运行
  • Restart:进程挂了是否重启

2️⃣ 重新加载并启用

sudo systemctl daemon-reload
sudo systemctl enable myapp.service

3️⃣ 启动并查看状态

sudo systemctl start myapp
sudo systemctl status myapp

✅ 重启后就会自动启动


二、使用 rc.local(简单但不推荐)

适用于快速测试,Debian 新版本默认可能没有 rc.local

1️⃣ 编辑 rc.local

sudo nano /etc/rc.local

示例:

#!/bin/bash
/opt/myapp/run.sh &
exit 0

2️⃣ 给执行权限

sudo chmod +x /etc/rc.local

⚠️ 如果系统没有 rc-local.service,需要手动创建 systemd 支持


三、使用 crontab @reboot(适合简单脚本)

crontab -e

添加:

@reboot /opt/myapp/run.sh

✅ 重启后执行
❌ 不适合需要守护的进程


四、旧版 Debian(SysV init,极少见)

sudo update-rc.d myapp defaults

✅ 推荐总结

方式 推荐度 适用场景
systemd ⭐⭐⭐⭐⭐ 正式服务
crontab ⭐⭐⭐ 简单脚本
rc.local ⭐⭐ 临时测试

如果你愿意,可以告诉我:

  • Debian 版本
  • 要启动的是 脚本 / 二进制 / Docker / Java

我可以帮你写完整可直接用的配置文件。

0 踩