Refactor: Implement Hysteria server restart in Python
This commit is contained in:
@ -19,7 +19,7 @@ class Command(Enum):
|
|||||||
INSTALL_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'install.sh')
|
INSTALL_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'install.sh')
|
||||||
UNINSTALL_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'uninstall.sh')
|
UNINSTALL_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'uninstall.sh')
|
||||||
UPDATE_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'update.sh')
|
UPDATE_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'update.sh')
|
||||||
RESTART_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'restart.sh')
|
RESTART_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'restart.py')
|
||||||
CHANGE_PORT_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'change_port.py')
|
CHANGE_PORT_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'change_port.py')
|
||||||
CHANGE_SNI_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'change_sni.sh')
|
CHANGE_SNI_HYSTERIA2 = os.path.join(SCRIPT_DIR, 'hysteria2', 'change_sni.sh')
|
||||||
GET_USER = os.path.join(SCRIPT_DIR, 'hysteria2', 'get_user.py')
|
GET_USER = os.path.join(SCRIPT_DIR, 'hysteria2', 'get_user.py')
|
||||||
@ -139,7 +139,7 @@ def update_hysteria2():
|
|||||||
|
|
||||||
def restart_hysteria2():
|
def restart_hysteria2():
|
||||||
'''Restarts Hysteria2.'''
|
'''Restarts Hysteria2.'''
|
||||||
run_cmd(['bash', Command.RESTART_HYSTERIA2.value])
|
run_cmd(['python3', Command.RESTART_HYSTERIA2.value])
|
||||||
|
|
||||||
|
|
||||||
def get_hysteria2_port() -> int | None:
|
def get_hysteria2_port() -> int | None:
|
||||||
|
|||||||
34
core/scripts/hysteria2/restart.py
Normal file
34
core/scripts/hysteria2/restart.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
from init_paths import *
|
||||||
|
from paths import *
|
||||||
|
|
||||||
|
def restart_hysteria_server():
|
||||||
|
"""
|
||||||
|
Restarts the Hysteria server service.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
int: 0 on success, 1 on failure.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
subprocess.run([sys.executable, CLI_PATH, "traffic-status"], check=False, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||||
|
|
||||||
|
subprocess.run(["systemctl", "restart", "hysteria-server.service"], check=True)
|
||||||
|
print("Hysteria server restarted successfully.")
|
||||||
|
return 0
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
print(f"Error: Failed to restart the Hysteria server.")
|
||||||
|
return 1
|
||||||
|
except FileNotFoundError:
|
||||||
|
print(f"Error: CLI script not found at {CLI_PATH}.")
|
||||||
|
return 1
|
||||||
|
except Exception as e:
|
||||||
|
print(f"An unexpected error occurred: {e}")
|
||||||
|
return 1
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
exit_code = restart_hysteria_server()
|
||||||
|
sys.exit(exit_code)
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
python3 /etc/hysteria/core/cli.py traffic-status > /dev/null 2>&1
|
|
||||||
if systemctl restart hysteria-server.service; then
|
|
||||||
echo "Hysteria server restarted successfully."
|
|
||||||
else
|
|
||||||
echo "Error: Failed to restart the Hysteria server."
|
|
||||||
fi
|
|
||||||
Reference in New Issue
Block a user