请稍侯

将 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