在 Debian 中设置进程开机启动,常见做法有几种,取决于你使用的 init 系统(现代 Debian 一般用 systemd)。下面按推荐程度说明。
假设你要开机启动 /opt/myapp/run.sh
sudo nano /etc/systemd/system/myapp.service
内容示例:
[Unit]
Description=My Application
After=network.target
[Service]
ExecStart=/opt/myapp/run.sh
WorkingDirectory=/opt/myapp
Restart=always
User=myuser
[Install]
WantedBy=multi-user.target
说明:
ExecStart:要执行的命令User:运行用户(可选)Restart=always:进程挂掉自动重启sudo systemctl daemon-reload
sudo systemctl enable myapp.service
sudo systemctl start myapp
sudo systemctl status myapp
✅ 重启后会自动启动
适用于简单脚本。
sudo nano /etc/rc.local
在 exit 0 前加:
/opt/myapp/run.sh &
确保有执行权限:
sudo chmod +x /etc/rc.local
⚠️ Debian 新版本默认可能没启用 rc-local 服务
crontab -e
添加:
@reboot /opt/myapp/run.sh
✅ 简单
❌ 不适合复杂服务管理
sudo update-rc.d myapp defaults
(需要 /etc/init.d/myapp 脚本)
| 方法 | 推荐度 | 适用场景 |
|---|---|---|
| systemd | ⭐⭐⭐⭐⭐ | 正式服务 |
| crontab | ⭐⭐⭐ | 个人脚本 |
| rc.local | ⭐⭐ | 简单测试 |
如果你愿意,可以告诉我:
我可以帮你写完整 service 文件。