Ubuntu开机自启服务
一、准备启动脚本
- 在你的项目文件夹(例如
/home/ubuntu/Plant_Diease_Recongnization_Server_1
)中创建一个启动脚本run_ui_main.sh
:
#!/usr/bin/env bash
# run_ui_main.sh:激活 yolov8 环境并启动 ui_main.py# 设置 Anaconda/Miniconda 的安装路径(根据实际路径修改)
CONDA_HOME="$HOME/miniconda3"# 初始化 conda
source "${CONDA_HOME}/etc/profile.d/conda.sh"# 激活指定环境
conda activate Plant_Detect# 进入脚本所在目录(根据实际路径修改)
cd /home/ubuntu/Plant_Diease_Recongnization_Server_1# 执行脚本,并将日志输出到文件
exec python ui_main.py >> /home/ubuntu/Plant_Diease_Recongnization_Server_1/ui_main.log 2>&1# 注意需要提前创建log文件sudo touch /home/ubuntu/Plant_Diease_Recongnization_Server_1/ui_main.log
sudo chmod 666 /home/ubuntu/Plant_Diease_Recongnization_Server_1/ui_main.log
- 然后赋予脚本可执行权限:
chmod +x /home/ubuntu/Plant_Diease_Recongnization_Server_1/run_ui_main.sh
二、创建 systemd 服务单元
在 /etc/systemd/system/
下新建一个文件 ui_main.service
,内容如下:
[Unit]
Description=Auto-start ui_main.py in yolov8 Conda env
After=network.target[Service]
Type=simple
User=root
WorkingDirectory=/home/ubuntu/Plant_Diease_Recongnization_Server_1
ExecStart=/bin/bash /home/ubuntu/Plant_Diease_Recongnization_Server_1/run_ui_main.sh
Restart=on-failure
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=ui_main_py_service[Install]
WantedBy=multi-user.target
三、启用并测试服务
- 重新加载 systemd 配置:
sudo systemctl daemon-reload
- 手动启动并检查状态:
sudo systemctl start ui_main.service
sudo systemctl status ui_main.service
- 设置开机自启:
sudo systemctl enable ui_main.service
- 查看运行日志:
sudo journalctl -u ui_main.service -f
四、停止与禁用服务
- 立即停止服务:
sudo systemctl stop ui_main.service
- 禁止开机自动启动:
sudo systemctl disable ui_main.service
- 验证服务状态:
# 检查是否已停止
systemctl status ui_main.service# 检查是否禁用了开机启动
systemctl is-enabled ui_main.service
如果输出 disabled
,则表示已禁止自动启动。