2026-03-19
vim /etc/systemd/system/test_app.service
[Unit] Description=XXX App in Miniconda # 确保网络已就绪后再启动应用 After=network.target [Service] User=root Group=root # 设置工作目录为你的项目根目录 WorkingDirectory=/data/xxx # 核心:通过bash启动,先激活Conda环境,再运行Python程序 # 这种方式能正确加载Conda环境变量 ExecStart=/bin/bash -c '/usr/local/miniconda3/envs/xxx_env/bin/python /data/xxx/main.py' # 重启策略:如果进程退出(无论是正常退出还是崩溃),总是重启 Restart=always # 在重启前等待10秒,防止频繁重启 RestartSec=10 # 如果程序崩溃,将标准输出和错误输出都记录到日志文件中(可选) StandardOutput=append:/data/xxx/out.log StandardError=append:/data/xxx/err.log # 指定环境变量(可选,比如Flask的运行端口) # Environment="PATH=/usr/local/cuda-12.6/bin:$PATH" # Environment="LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH" [Install] # 设置为多用户模式下启动,即开机自启 WantedBy=multi-user.target
# 重新加载systemd配置,让新创建的服务文件生效 sudo systemctl daemon-reload # 启动服务 sudo systemctl start myflaskapp # 设置服务开机自启 sudo systemctl enable myflaskapp