4.2 KiB
4.2 KiB
创建Wantsong APP 服务
创建 Wantsong 用户并赋权
sudo useradd -m wantsong
sudo chown -R wantsong:wantsong /data/app-wantsong-life
sudo chown wantsong:wantsong /usr/local/bin/app-wantsong-chat-service.sh
sudo systemctl daemon-reload
sudo systemctl start app-wantsong-chat.service
sudo systemctl status app-wantsong-chat.service
你可以使用以下命令来确保 wantsong 用户有权限访问 conda 环境和相关目录:
- 更改
anaconda3目录及其子目录的所有者为wantsong用户:
sudo chown -R wantsong:wantsong /root/anaconda3
- 确保
wantsong用户对anaconda3目录及其子目录有读写执行权限:
sudo chmod -R 755 /root/anaconda3
- 确保
wantsong用户对工作目录/data/app-wantsong-life有读写执行权限:
sudo chown -R wantsong:wantsong /data/app-wantsong-life
sudo chmod -R 755 /data/app-wantsong-life
sudo chown -R wantsong:wantsong /data/
完成这些操作后,重新加载 systemd 配置并启动服务:
sudo systemctl daemon-reload
sudo systemctl start app-wantsong-chat.service
sudo systemctl status app-wantsong-chat.service
这样应该可以确保 wantsong 用户有权限访问 conda 环境和相关目录,并成功启动服务。
创建服务
根据您提供的命令和需求,建议通过Systemd服务实现自动化管理。以下是具体实现步骤和注意事项:
完整解决方案:
- 创建启动脚本(避免直接在服务文件中执行多命令)
sudo nano /usr/local/bin/app-wantsong-chat-service.sh
写入内容:
#!/bin/bash
source /opt/conda/etc/profile.d/conda.sh # 根据实际conda安装路径调整
conda activate python312
cd /data/app-wantsong-life && \
streamlit run chat/app.py \
--server.port 5065 \
--server.address 127.0.0.1 \
--server.enableCORS false \
--server.enableXsrfProtection false \
--server.baseUrlPath "chat" \
--browser.gatherUsageStats false
- 设置脚本权限
sudo chmod +x /usr/local/bin/app-wantsong-chat-service.sh
- 创建Systemd服务文件
sudo nano /etc/systemd/system/app-wantsong-chat.service
写入内容:
[Unit]
Description=Wantsong Chat Service
After=network.target
[Service]
Type=simple
User=wantsong # 替换为实际运行用户
WorkingDirectory=/data/app-wantsong-life
ExecStart=/bin/bash /usr/local/bin/app-wantsong-chat-service.sh
Restart=always
RestartSec=30
Environment="PATH=/opt/conda/envs/python312/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
# 如果遇到环境变量问题,可添加更多环境变量:
# Environment="LANG=en_US.UTF-8"
[Install]
WantedBy=multi-user.target
# 如果遇到环境变量问题,可添加更多环境变量:
# Environment="LANG=en_US.UTF-8"
[Install]
WantedBy=multi-user.target
关键配置说明:
source conda.sh:确保正确加载conda环境(路径需根据实际安装位置调整)Restart策略:进程意外终止时自动重启Environment PATH:显式指定路径,避免环境变量缺失User指定:必须与conda环境所有者一致(重要)
部署验证步骤:
- 重新加载服务配置
sudo systemctl daemon-reload
- 启动服务
sudo systemctl start app-wantsong-chat
- 设置开机启动
sudo systemctl enable app-wantsong-chat
- 查看运行状态
sudo systemctl status app-wantsong-chat
常见问题排查:
- 如果出现
conda: command not found:
- 检查conda.sh路径是否正确(常见路径:
/opt/conda/etc/profile.d/conda.sh或/home/用户名/miniconda3/etc/...)
- 若端口冲突:
netstat -tulnp | grep 5065
- 查看详细日志:
journalctl -u wantsong-chat -f
扩展建议:
- 建议添加日志重定向到文件:
# 在[Service]段添加
StandardOutput=file:/var/log/wantsong-chat.log
StandardError=file:/var/log/wantsong-chat-error.log
- 如果涉及GPU资源,需添加:
Environment="CUDA_VISIBLE_DEVICES=0"
- 生产环境建议配合Nginx反向代理,添加SSL证书保护
执行完毕后,服务会自动在后台运行,并可通过systemctl命令进行管理。建议首次部署后观察日志30分钟确认稳定性。