WalleGriffkinder commited on
Commit
fb4cd68
·
verified ·
1 Parent(s): b5da1c3

Update start.sh

Browse files
Files changed (1) hide show
  1. start.sh +16 -17
start.sh CHANGED
@@ -21,18 +21,26 @@ fi
21
 
22
  # Порты
23
  TELEGRAM_MAIN_PORT=7860 # Как указано в app_port в README.md
24
- # EXPRESS_PORT будет взят из окружения Node.js приложения (по умолчанию 3001)
 
 
 
 
 
 
 
 
 
25
 
26
  echo "1. Запуск Telegram Bot API на порту ${TELEGRAM_MAIN_PORT}..."
27
  # Запускаем Telegram Bot API в фоновом режиме
28
- # Он будет использовать /var/lib/telegram-bot-api, права на которую установлены для appuser
29
  telegram-bot-api \
30
  --local \
31
  --http-port=${TELEGRAM_MAIN_PORT} \
32
- --http-stat-port=8082 \ # Статистика самого API на неиспользуемом порту, нам она не нужна снаружи
33
  --http-stat-ip-address=127.0.0.1 \
34
- --dir=${TELEGRAM_DATA_DIR:-/var/lib/telegram-bot-api} \
35
- --temp-dir=${TELEGRAM_DATA_DIR:-/var/lib/telegram-bot-api} &
36
 
37
  TELEGRAM_PID=$!
38
  echo "Telegram Bot API запущен с PID: $TELEGRAM_PID"
@@ -42,7 +50,6 @@ sleep 3
42
 
43
  echo "2. Запуск Node.js Express приложения (статистика, файлы, Gist)..."
44
  # Запускаем Node.js приложение в фоновом режиме
45
- # Оно само запустит туннель для своего порта
46
  node server.js &
47
  NODE_APP_PID=$!
48
  echo "Node.js приложение запущено с PID: $NODE_APP_PID"
@@ -50,7 +57,6 @@ echo "Node.js приложение запущено с PID: $NODE_APP_PID"
50
  # Функция для корректного завершения
51
  cleanup() {
52
  echo "Получен сигнал завершения. Остановка процессов..."
53
- # Убиваем процессы в обратном порядке их запуска
54
  if kill -0 $NODE_APP_PID 2>/dev/null; then
55
  echo "Остановка Node.js приложения (PID: $NODE_APP_PID)..."
56
  kill $NODE_APP_PID
@@ -59,29 +65,22 @@ cleanup() {
59
  echo "Остановка Telegram Bot API (PID: $TELEGRAM_PID)..."
60
  kill $TELEGRAM_PID
61
  fi
62
- # SSH туннель запускается и управляется из Node.js, он должен завершиться при завершении Node.js
63
 
64
- # Ожидаем завершения фоновых процессов
65
  wait $NODE_APP_PID 2>/dev/null
66
  wait $TELEGRAM_PID 2>/dev/null
67
  echo "Процессы остановлены."
68
- exit 0 # Успешное завершение
69
  }
70
 
71
- # Перехватываем сигналы SIGINT (Ctrl+C) и SIGTERM
72
  trap cleanup SIGINT SIGTERM
73
 
74
- # Ожидаем завершения основного процесса (например, Node.js приложения)
75
- # Если Node.js упадет, то и контейнер должен остановиться.
76
- # Если Telegram API упадет, Node.js продолжит работать (можно изменить логику, если нужно)
77
  wait $NODE_APP_PID
78
- EXIT_CODE=$? # Получаем код выхода Node.js приложения
79
 
80
  echo "Node.js приложение завершилось с кодом $EXIT_CODE. Завершение работы..."
81
- # Если Node.js завершился, останавливаем и Telegram API, если он еще работает
82
  if kill -0 $TELEGRAM_PID 2>/dev/null; then
83
  kill $TELEGRAM_PID
84
  wait $TELEGRAM_PID 2>/dev/null
85
  fi
86
 
87
- exit $EXIT_CODE # Выходим с кодом завершения Node.js приложения
 
21
 
22
  # Порты
23
  TELEGRAM_MAIN_PORT=7860 # Как указано в app_port в README.md
24
+
25
+ # Определяем директорию для данных Telegram API
26
+ # Если TELEGRAM_DATA_DIR установлена и не пуста, используем ее, иначе /var/lib/telegram-bot-api
27
+ if [ -n "$TELEGRAM_DATA_DIR" ]; then
28
+ EFFECTIVE_TELEGRAM_DATA_DIR="$TELEGRAM_DATA_DIR"
29
+ else
30
+ EFFECTIVE_TELEGRAM_DATA_DIR="/var/lib/telegram-bot-api"
31
+ fi
32
+ echo "Effective Telegram data directory: ${EFFECTIVE_TELEGRAM_DATA_DIR}"
33
+
34
 
35
  echo "1. Запуск Telegram Bot API на порту ${TELEGRAM_MAIN_PORT}..."
36
  # Запускаем Telegram Bot API в фоновом режиме
 
37
  telegram-bot-api \
38
  --local \
39
  --http-port=${TELEGRAM_MAIN_PORT} \
40
+ --http-stat-port=8082 \
41
  --http-stat-ip-address=127.0.0.1 \
42
+ --dir="${EFFECTIVE_TELEGRAM_DATA_DIR}" \
43
+ --temp-dir="${EFFECTIVE_TELEGRAM_DATA_DIR}" &
44
 
45
  TELEGRAM_PID=$!
46
  echo "Telegram Bot API запущен с PID: $TELEGRAM_PID"
 
50
 
51
  echo "2. Запуск Node.js Express приложения (статистика, файлы, Gist)..."
52
  # Запускаем Node.js приложение в фоновом режиме
 
53
  node server.js &
54
  NODE_APP_PID=$!
55
  echo "Node.js приложение запущено с PID: $NODE_APP_PID"
 
57
  # Функция для корректного завершения
58
  cleanup() {
59
  echo "Получен сигнал завершения. Остановка процессов..."
 
60
  if kill -0 $NODE_APP_PID 2>/dev/null; then
61
  echo "Остановка Node.js приложения (PID: $NODE_APP_PID)..."
62
  kill $NODE_APP_PID
 
65
  echo "Остановка Telegram Bot API (PID: $TELEGRAM_PID)..."
66
  kill $TELEGRAM_PID
67
  fi
 
68
 
 
69
  wait $NODE_APP_PID 2>/dev/null
70
  wait $TELEGRAM_PID 2>/dev/null
71
  echo "Процессы остановлены."
72
+ exit 0
73
  }
74
 
 
75
  trap cleanup SIGINT SIGTERM
76
 
 
 
 
77
  wait $NODE_APP_PID
78
+ EXIT_CODE=$?
79
 
80
  echo "Node.js приложение завершилось с кодом $EXIT_CODE. Завершение работы..."
 
81
  if kill -0 $TELEGRAM_PID 2>/dev/null; then
82
  kill $TELEGRAM_PID
83
  wait $TELEGRAM_PID 2>/dev/null
84
  fi
85
 
86
+ exit $EXIT_CODE