当前位置: 首页 > news >正文

Ubuntu开机自启服务

一、准备启动脚本

  1. 在你的项目文件夹(例如 /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
  1. 然后赋予脚本可执行权限:
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

三、启用并测试服务

  1. 重新加载 systemd 配置:
sudo systemctl daemon-reload
  1. 手动启动并检查状态:
sudo systemctl start ui_main.service
sudo systemctl status ui_main.service
  1. 设置开机自启:
sudo systemctl enable ui_main.service
  1. 查看运行日志:
sudo journalctl -u ui_main.service -f

四、停止与禁用服务

  1. 立即停止服务:
sudo systemctl stop ui_main.service
  1. 禁止开机自动启动:
sudo systemctl disable ui_main.service
  1. 验证服务状态:
# 检查是否已停止
systemctl status ui_main.service# 检查是否禁用了开机启动
systemctl is-enabled ui_main.service

如果输出 disabled,则表示已禁止自动启动。

相关文章:

  • 关于systemverilog中在task中使用force语句的注意事项
  • 第三十八节:视频处理-视频保存
  • 线程调度与单例模式:wait、notify与懒汉模式解析
  • 麦克风与扬声器的关键区别 [特殊字符]
  • SpringBoot+ELK 搭建日志监控平台
  • 前端 vue + element-ui 框架从 0 - 1 搭建
  • Spring Cloud Seata 快速入门及生产实战指南
  • antd树结构
  • 阻塞队列:线程安全与生产者消费者模型解析
  • OSPF路由撤销及优化
  • solana钱包管理模块
  • 自动化测试的框架有哪些?原理是什么?
  • 判断三方库是64位还是32位
  • IEEE Communications Magazine 2025年1-3月论文速览
  • 【调制识别】PGD攻击中参数的含义
  • ArkUI Tab组件开发深度解析与应用指南
  • lowcoder数据库操作2:新建数据库查询
  • Java:logback-classic与slf4j版本对应关系
  • 实战手册--如何针对衡石分析平台的数据集成详解
  • EmoBox:我与 CodeBuddy 共创的 Emoji 表情分类小工具
  • 郑钦文憾负高芙,止步WTA1000罗马站四强
  • 选址江南制造总局旧址,上海工业博物馆建设有新进展
  • 商务部:今年前3月自贸试验区进出口总额达2万亿元
  • 从能源装备向应急装备蓝海拓展,川润股份发布智能综合防灾应急仓
  • 袁思达已任中国科学院办公厅主任
  • 兰州大学教授安成邦加盟复旦大学中国历史地理研究所