109 lines
3.1 KiB
Bash
109 lines
3.1 KiB
Bash
#!/bin/bash
|
|
# Script cài đặt LiteRT-LM systemd service cho Linux
|
|
|
|
echo "========================================"
|
|
echo " Cài đặt LiteRT-LM Service"
|
|
echo "========================================"
|
|
echo
|
|
|
|
# Lấy thông tin user và đường dẫn hiện tại
|
|
CURRENT_USER=$(whoami)
|
|
CURRENT_DIR=$(pwd)
|
|
PYTHON_PATH=$(which python3)
|
|
|
|
# Kiểm tra quyền sudo
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "[ERROR] Vui lòng chạy script với sudo:"
|
|
echo " sudo bash install_service.sh"
|
|
exit 1
|
|
fi
|
|
|
|
# Hỏi cấu hình
|
|
echo "Cấu hình service:"
|
|
echo
|
|
|
|
# Port
|
|
read -p "Port (mặc định 8000): " SERVICE_PORT
|
|
SERVICE_PORT=${SERVICE_PORT:-8000}
|
|
|
|
# Model path (tùy chọn)
|
|
read -p "Đường dẫn model (Enter để chọn từ menu khi khởi động): " MODEL_PATH
|
|
if [ -n "$MODEL_PATH" ]; then
|
|
MODEL_ARG="--model $MODEL_PATH"
|
|
else
|
|
MODEL_ARG=""
|
|
fi
|
|
|
|
# Tạo file config model mặc định nếu chưa có và không dùng custom model
|
|
if [ -z "$MODEL_PATH" ] && [ ! -f "service_config.txt" ]; then
|
|
echo "1" > service_config.txt
|
|
chown $SUDO_USER:$SUDO_USER service_config.txt
|
|
echo "[✓] Đã tạo service_config.txt với model mặc định: 1"
|
|
fi
|
|
|
|
# Tạo file service từ template
|
|
echo
|
|
echo "[1/4] Tạo file systemd service..."
|
|
cat > /tmp/litert-lm.service << EOF
|
|
[Unit]
|
|
Description=LiteRT-LM Server Service
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=$SUDO_USER
|
|
WorkingDirectory=$CURRENT_DIR
|
|
Environment="PATH=/usr/bin:/usr/local/bin:$HOME/.local/bin"
|
|
ExecStart=$PYTHON_PATH $CURRENT_DIR/server.py --port $SERVICE_PORT $MODEL_ARG
|
|
StandardInput=file:$CURRENT_DIR/service_config.txt
|
|
Restart=always
|
|
RestartSec=10
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
# Copy file service vào systemd
|
|
echo "[2/4] Cài đặt service vào systemd..."
|
|
cp /tmp/litert-lm.service /etc/systemd/system/litert-lm.service
|
|
chmod 644 /etc/systemd/system/litert-lm.service
|
|
|
|
# Reload systemd
|
|
echo "[3/4] Reload systemd daemon..."
|
|
systemctl daemon-reload
|
|
|
|
# Enable và start service
|
|
echo "[4/4] Kích hoạt và khởi động service..."
|
|
systemctl enable litert-lm.service
|
|
systemctl start litert-lm.service
|
|
|
|
echo
|
|
echo "========================================"
|
|
echo " Cài đặt thành công!"
|
|
echo "========================================"
|
|
echo
|
|
echo "Service đã được cài đặt và khởi động."
|
|
echo "Server sẽ tự động chạy khi khởi động hệ thống."
|
|
echo
|
|
echo "Cấu hình:"
|
|
echo " - Port: $SERVICE_PORT"
|
|
if [ -n "$MODEL_PATH" ]; then
|
|
echo " - Model: $MODEL_PATH"
|
|
else
|
|
echo " - Model: Chọn từ menu (xem service_config.txt)"
|
|
fi
|
|
echo
|
|
echo "Các lệnh quản lý:"
|
|
echo " - Xem trạng thái: sudo systemctl status litert-lm"
|
|
echo " - Dừng service: sudo systemctl stop litert-lm"
|
|
echo " - Khởi động service: sudo systemctl start litert-lm"
|
|
echo " - Khởi động lại: sudo systemctl restart litert-lm"
|
|
echo " - Xem logs: sudo journalctl -u litert-lm -f"
|
|
echo " - Gỡ cài đặt: sudo bash uninstall_service.sh"
|
|
echo
|
|
echo "Server đang chạy tại: http://localhost:$SERVICE_PORT"
|
|
echo
|
|
|
|
# Hiển thị trạng thái
|
|
systemctl status litert-lm.service --no-pager
|