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
|
||
|