一、systemd 服務(主流方法)
適用于使用systemd的現代發行版(Ubuntu 16.04+/CentOS 7+)
- 創建服務文件
sudo nano /etc/systemd/system/your_script.service
- 寫入服務配置(示例):
[Unit]
Description=My Custom Script
After=network.target[Service]
ExecStart=/path/to/your_script.sh
Restart=on-failure
User=root[Install]
WantedBy=multi-user.target
- 設置權限并啟用服務:
sudo systemctl daemon-reload
sudo systemctl enable your_script.service
- 驗證服務狀態:
systemctl status your_script.service
二、rc.local 方式(傳統方法)
適用于仍支持rc.local的系統(Ubuntu 18.04前/CentOS 6)
- 編輯rc.local文件:
sudo nano /etc/rc.local
- 在
exit 0
前添加執行命令:
/path/to/your_script.sh &
- 設置可執行權限:
sudo chmod +x /etc/rc.local
三、cron 定時任務
適用于所有Linux系統(用戶級啟動)
- 編輯當前用戶的crontab:
crontab -e
- 添加啟動指令:
@reboot /path/to/your_script.sh
四、圖形界面配置(桌面環境)
適用于GNOME/KDE等桌面環境
- 搜索啟動應用程序(Startup Applications)
- 點擊添加 → 輸入名稱和腳本路徑
- 支持設置延遲啟動和初始工作目錄
五、注意事項與調試
-
腳本要求:
- 必須具有可執行權限:
chmod +x your_script.sh
- 使用絕對路徑(啟動時環境變量不同)
- 避免使用交互式命令
- 必須具有可執行權限:
-
日志查看:
# systemd服務日志
journalctl -u your_script.service -b# 通用啟動日志
dmesg | grep "啟動關鍵詞"
- 服務管理命令:
# 禁用服務
sudo systemctl disable your_script.service# 臨時運行測試
sudo systemctl start your_script.service
- 優先級建議:
? 推薦使用systemd方案(支持依賴管理、錯誤重啟)
?? 慎用rc.local(部分新系統默認禁用)
🖥? 桌面程序建議用圖形界面配置
六、故障排查流程
- 檢查服務狀態:
systemctl status your_service
- 測試手動運行:
sudo /path/to/script.sh
- 查看日志文件:
journalctl -xe
- 檢查腳本權限和路徑
- 確認執行環境變量是否完整
選擇最適合您系統環境的方法,建議優先使用systemd方案以獲得最佳兼容性和管理功能。