165 lines
3.5 KiB
Bash
165 lines
3.5 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
# WPS Bot Game 服务管理脚本
|
|||
|
|
|
|||
|
|
SERVICE_NAME="wps-bot"
|
|||
|
|
|
|||
|
|
# 颜色定义
|
|||
|
|
RED='\033[0;31m'
|
|||
|
|
GREEN='\033[0;32m'
|
|||
|
|
YELLOW='\033[1;33m'
|
|||
|
|
NC='\033[0m' # No Color
|
|||
|
|
|
|||
|
|
# 显示帮助信息
|
|||
|
|
show_help() {
|
|||
|
|
echo "WPS Bot Game 服务管理工具"
|
|||
|
|
echo ""
|
|||
|
|
echo "用法: $0 {start|stop|restart|status|logs|enable|disable|update}"
|
|||
|
|
echo ""
|
|||
|
|
echo "命令说明:"
|
|||
|
|
echo " start - 启动服务"
|
|||
|
|
echo " stop - 停止服务"
|
|||
|
|
echo " restart - 重启服务"
|
|||
|
|
echo " status - 查看服务状态"
|
|||
|
|
echo " logs - 查看实时日志"
|
|||
|
|
echo " enable - 启用开机自启"
|
|||
|
|
echo " disable - 禁用开机自启"
|
|||
|
|
echo " update - 更新代码并重启"
|
|||
|
|
echo ""
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 启动服务
|
|||
|
|
start_service() {
|
|||
|
|
echo -e "${YELLOW}正在启动服务...${NC}"
|
|||
|
|
sudo systemctl start ${SERVICE_NAME}
|
|||
|
|
if [ $? -eq 0 ]; then
|
|||
|
|
echo -e "${GREEN}✅ 服务启动成功${NC}"
|
|||
|
|
sleep 2
|
|||
|
|
sudo systemctl status ${SERVICE_NAME} --no-pager
|
|||
|
|
else
|
|||
|
|
echo -e "${RED}❌ 服务启动失败${NC}"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 停止服务
|
|||
|
|
stop_service() {
|
|||
|
|
echo -e "${YELLOW}正在停止服务...${NC}"
|
|||
|
|
sudo systemctl stop ${SERVICE_NAME}
|
|||
|
|
if [ $? -eq 0 ]; then
|
|||
|
|
echo -e "${GREEN}✅ 服务已停止${NC}"
|
|||
|
|
else
|
|||
|
|
echo -e "${RED}❌ 服务停止失败${NC}"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 重启服务
|
|||
|
|
restart_service() {
|
|||
|
|
echo -e "${YELLOW}正在重启服务...${NC}"
|
|||
|
|
sudo systemctl restart ${SERVICE_NAME}
|
|||
|
|
if [ $? -eq 0 ]; then
|
|||
|
|
echo -e "${GREEN}✅ 服务重启成功${NC}"
|
|||
|
|
sleep 2
|
|||
|
|
sudo systemctl status ${SERVICE_NAME} --no-pager
|
|||
|
|
else
|
|||
|
|
echo -e "${RED}❌ 服务重启失败${NC}"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 查看状态
|
|||
|
|
show_status() {
|
|||
|
|
sudo systemctl status ${SERVICE_NAME}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 查看日志
|
|||
|
|
show_logs() {
|
|||
|
|
echo -e "${YELLOW}实时日志(按Ctrl+C退出):${NC}"
|
|||
|
|
sudo journalctl -u ${SERVICE_NAME} -f
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 启用开机自启
|
|||
|
|
enable_service() {
|
|||
|
|
echo -e "${YELLOW}启用开机自启...${NC}"
|
|||
|
|
sudo systemctl enable ${SERVICE_NAME}
|
|||
|
|
if [ $? -eq 0 ]; then
|
|||
|
|
echo -e "${GREEN}✅ 已启用开机自启${NC}"
|
|||
|
|
else
|
|||
|
|
echo -e "${RED}❌ 启用失败${NC}"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 禁用开机自启
|
|||
|
|
disable_service() {
|
|||
|
|
echo -e "${YELLOW}禁用开机自启...${NC}"
|
|||
|
|
sudo systemctl disable ${SERVICE_NAME}
|
|||
|
|
if [ $? -eq 0 ]; then
|
|||
|
|
echo -e "${GREEN}✅ 已禁用开机自启${NC}"
|
|||
|
|
else
|
|||
|
|
echo -e "${RED}❌ 禁用失败${NC}"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 更新代码
|
|||
|
|
update_service() {
|
|||
|
|
echo -e "${YELLOW}正在更新代码...${NC}"
|
|||
|
|
|
|||
|
|
# 停止服务
|
|||
|
|
stop_service
|
|||
|
|
|
|||
|
|
# 进入项目目录
|
|||
|
|
cd /opt/wps-bot
|
|||
|
|
|
|||
|
|
# 拉取最新代码(如果使用git)
|
|||
|
|
if [ -d ".git" ]; then
|
|||
|
|
echo -e "${YELLOW}从Git拉取最新代码...${NC}"
|
|||
|
|
sudo -u ubuntu git pull
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 更新依赖
|
|||
|
|
echo -e "${YELLOW}更新依赖...${NC}"
|
|||
|
|
sudo -u ubuntu /home/ubuntu/miniconda3/envs/liubai/bin/pip install -r requirements.txt
|
|||
|
|
|
|||
|
|
# 重启服务
|
|||
|
|
start_service
|
|||
|
|
|
|||
|
|
echo -e "${GREEN}✅ 更新完成${NC}"
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 主逻辑
|
|||
|
|
case "$1" in
|
|||
|
|
start)
|
|||
|
|
start_service
|
|||
|
|
;;
|
|||
|
|
stop)
|
|||
|
|
stop_service
|
|||
|
|
;;
|
|||
|
|
restart)
|
|||
|
|
restart_service
|
|||
|
|
;;
|
|||
|
|
status)
|
|||
|
|
show_status
|
|||
|
|
;;
|
|||
|
|
logs)
|
|||
|
|
show_logs
|
|||
|
|
;;
|
|||
|
|
enable)
|
|||
|
|
enable_service
|
|||
|
|
;;
|
|||
|
|
disable)
|
|||
|
|
disable_service
|
|||
|
|
;;
|
|||
|
|
update)
|
|||
|
|
update_service
|
|||
|
|
;;
|
|||
|
|
*)
|
|||
|
|
show_help
|
|||
|
|
exit 1
|
|||
|
|
;;
|
|||
|
|
esac
|
|||
|
|
|
|||
|
|
exit 0
|
|||
|
|
|