install-services.sh 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/bin/bash
  2. # ============================================
  3. # 灵越智报 - Systemd 服务安装脚本
  4. # ============================================
  5. set -e
  6. # 颜色定义
  7. RED='\033[0;31m'
  8. GREEN='\033[0;32m'
  9. YELLOW='\033[1;33m'
  10. NC='\033[0m'
  11. log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
  12. log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
  13. log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
  14. # 获取脚本所在目录
  15. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  16. SYSTEMD_DIR="${SCRIPT_DIR}/systemd"
  17. LOG_DIR="/var/log/lingyue"
  18. # 检查 root 权限
  19. if [ "$EUID" -ne 0 ]; then
  20. log_error "请使用 root 用户运行此脚本"
  21. log_info "使用: sudo $0"
  22. exit 1
  23. fi
  24. # 创建日志目录
  25. log_info "创建日志目录: ${LOG_DIR}"
  26. mkdir -p ${LOG_DIR}
  27. chmod 755 ${LOG_DIR}
  28. # 复制服务文件
  29. log_info "复制服务文件到 /etc/systemd/system/"
  30. cp ${SYSTEMD_DIR}/lingyue-starter.service /etc/systemd/system/
  31. cp ${SYSTEMD_DIR}/lingyue-extract.service /etc/systemd/system/
  32. cp ${SYSTEMD_DIR}/lingyue-ner.service /etc/systemd/system/
  33. # 重新加载 systemd
  34. log_info "重新加载 systemd 配置"
  35. systemctl daemon-reload
  36. # 询问是否启用服务
  37. echo ""
  38. echo "是否启用服务开机自启?"
  39. echo "1) lingyue-starter (主应用,端口 5232)"
  40. echo "2) lingyue-extract (模板服务,端口 8086)"
  41. echo "3) lingyue-ner (NER 服务,端口 8001)"
  42. echo ""
  43. read -p "启用 lingyue-starter? [y/N]: " enable_starter
  44. if [[ "$enable_starter" =~ ^[Yy]$ ]]; then
  45. systemctl enable lingyue-starter
  46. log_info "lingyue-starter 已启用开机自启"
  47. fi
  48. read -p "启用 lingyue-extract? [y/N]: " enable_extract
  49. if [[ "$enable_extract" =~ ^[Yy]$ ]]; then
  50. systemctl enable lingyue-extract
  51. log_info "lingyue-extract 已启用开机自启"
  52. fi
  53. read -p "启用 lingyue-ner? [y/N]: " enable_ner
  54. if [[ "$enable_ner" =~ ^[Yy]$ ]]; then
  55. systemctl enable lingyue-ner
  56. log_info "lingyue-ner 已启用开机自启"
  57. fi
  58. echo ""
  59. log_info "安装完成!"
  60. echo ""
  61. echo "常用命令:"
  62. echo " 查看状态: systemctl status lingyue-starter"
  63. echo " 启动服务: systemctl start lingyue-starter"
  64. echo " 停止服务: systemctl stop lingyue-starter"
  65. echo " 查看日志: journalctl -u lingyue-starter -f"
  66. echo ""
  67. echo "服务端口:"
  68. echo " lingyue-starter: 5232"
  69. echo " lingyue-extract: 8086"
  70. echo " lingyue-ner: 8001"