将 python app.py 添加到 systemd service
11 May 2025
将 python app.py 添加到 systemd service
以 suayptalha/Chat-with-Bitnet-b1.58-2B-4T 为例。
首先,添加 start.sh, 添加以下shell代码:
#!/bin/bash
# set -x # 开启调试模式
virtual_env=v_bitnet
# 进入目标目录
cd /opt/docker/bitnet_b1582b4t || { echo "Failed to change directory"; exit 1; }
# 检查当前激活的虚拟环境名称(如果有的话)
current_venv=$(pyenv version | awk '{print $1}')
# 判断是否已经激活了 $virtual_env
if [ "$current_venv" != "$virtual_env" ]; then
echo "Activating pyenv virtual environment: $virtual_env"
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv activate $virtual_env
if [ $? -ne 0 ]; then
echo "Failed to activate virtual environment $virtual_env"
exit 1
fi
else
echo "Virtual environment $virtual_env is already active. Skipping activation."
fi
# 启动 Python 脚本
exec python app.py
然后,创建 bitnet.service, 添加以下内容:
[Unit]
Description=Bitnet Service
After=network.target
[Service]
Environment="PYENV_ROOT=/home/luowei/.pyenv"
Environment="PATH=/home/luowei/.pyenv/shims:/home/luowei/.pyenv/bin:/usr/bin:/bin"
ExecStart=/bin/bash /opt/docker/bitnet_b1582b4t/start.sh
WorkingDirectory=/opt/docker/bitnet_b1582b4t
StandardOutput=inherit
StandardError=inherit
Restart=always
[Install]
WantedBy=multi-user.target
添加到 system service
sudo cp bitnet_b1582b4t/bitnet.service /etc/systemd/system/bitnet.service
sudo systemctl enable bitnet.service
sudo systemctl daemon-reload
sudo systemctl restart bitnet.service
sudo systemctl status bitnet.service
