version 1.3.2: исправлен перезапуск панели и удаление SSH-порта

- app.py: отложенный systemctl restart (sleep 1) — ответ уходит до убийства gunicorn
- mita-ctl.sh: ручной ввод SSH-порта при удалении вместо автоопределения
This commit is contained in:
2026-06-27 00:57:16 +03:00
parent 63c252825a
commit 6e74b9e539
2 changed files with 17 additions and 9 deletions
+10 -5
View File
@@ -671,10 +671,12 @@ def api_ssl_letsencrypt():
@app.route(f"{BASE}/api/panel/restart", methods=["POST"])
@login_required
def api_panel_restart():
r = subprocess.run(["systemctl","restart","mita-panel"],
capture_output=True, text=True, timeout=10)
if r.returncode != 0:
return jsonify({"ok": False, "error": r.stderr.strip()}), 500
# Отложенный перезапуск — gunicorn убивает текущий процесc при restart,
# не давая ответу уйти. sleep 1 даёт Flask отдать ответ до перезапуска.
subprocess.Popen(
["bash","-c","sleep 1 && systemctl restart mita-panel"],
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL
)
return jsonify({"ok": True})
@app.route(f"{BASE}/api/panel/access")
@@ -737,7 +739,10 @@ exec /opt/mita-panel/venv/bin/gunicorn \\
pc["access_mode"] = mode
Path(PANEL_CONFIG).write_text(json.dumps(pc, indent=2))
subprocess.run(["systemctl","restart","mita-panel"], capture_output=True, timeout=10)
subprocess.Popen(
["bash","-c","sleep 1 && systemctl restart mita-panel"],
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL
)
ssh_port = pc.get("ssh_port", 22)
return jsonify({
+7 -4
View File
@@ -1306,10 +1306,13 @@ except: print('2100-2110')
fi
_PANEL_PORT=${_PANEL_PORT:-8080}
# Автодетект текущего SSH порта из sshd_config (чтобы не трогать его при чистке)
_SSH_PORT=$(grep -E "^[[:space:]]*Port[[:space:]]+" /etc/ssh/sshd_config 2>/dev/null | awk '{print $2}' | head -1 || true)
_SSH_PORT=${_SSH_PORT:-22}
info "Обнаружен SSH порт: $_SSH_PORT (будет сохранён)"
# Определяем SSH порт — пользователь вводит сам, автоопределение как подсказка
_SSH_DETECTED=$(grep -E "^[[:space:]]*Port[[:space:]]+" /etc/ssh/sshd_config 2>/dev/null | awk '{print $2}' | head -1 || true)
_SSH_DETECTED=${_SSH_DETECTED:-22}
echo ""
read -r -p " SSH порт, который НЕ нужно закрывать [${_SSH_DETECTED}]: " _SSH_INPUT
_SSH_PORT="${_SSH_INPUT:-$_SSH_DETECTED}"
info "SSH порт $_SSH_PORT будет сохранён"
info "Порты mita для закрытия: $_MITA_RANGE"
info "Порт панели для закрытия: $_PANEL_PORT"