AUTARCH v1.9 — remote monitoring, SSH manager, daemon, vault, cleanup
- Add Remote Monitoring Station with PIAP device profile system - Add SSH/SSHD manager with fail2ban integration - Add privileged daemon architecture for safe root operations - Add encrypted vault, HAL memory, HAL auto-analyst - Add network security suite, module creator, codex training - Add start.sh launcher script and GTK3 desktop launcher - Remove Output/ build artifacts, installer files, loose docs - Update .gitignore for runtime data and build artifacts - Update README for v1.9 with new launch method, screenshots, and features Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
17
core/menu.py
17
core/menu.py
@@ -11,6 +11,7 @@ from typing import Dict, List, Optional, Callable
|
||||
|
||||
from .banner import Colors, display_banner, clear_screen
|
||||
from .config import get_config
|
||||
from core.daemon import root_exec
|
||||
|
||||
|
||||
# Module categories
|
||||
@@ -2437,30 +2438,32 @@ class MainMenu:
|
||||
break
|
||||
elif choice == "1" and not installed:
|
||||
try:
|
||||
subprocess.run(['sudo', 'cp', str(SERVICE_FILE), str(SYSTEMD_PATH)], check=True)
|
||||
subprocess.run(['sudo', 'systemctl', 'daemon-reload'], check=True)
|
||||
r = root_exec(['cp', str(SERVICE_FILE), str(SYSTEMD_PATH)])
|
||||
if not r['ok']: raise subprocess.CalledProcessError(r['code'], 'cp')
|
||||
r = root_exec(['systemctl', 'daemon-reload'])
|
||||
if not r['ok']: raise subprocess.CalledProcessError(r['code'], 'systemctl')
|
||||
self.print_status("Service installed", "success")
|
||||
except Exception as e:
|
||||
self.print_status(f"Install failed: {e}", "error")
|
||||
input(f"\n{Colors.WHITE} Press Enter...{Colors.RESET}")
|
||||
elif choice == "1" and installed:
|
||||
subprocess.run(['sudo', 'systemctl', 'start', SERVICE_NAME])
|
||||
root_exec(['systemctl', 'start', SERVICE_NAME])
|
||||
self.print_status("Service started", "success")
|
||||
input(f"\n{Colors.WHITE} Press Enter...{Colors.RESET}")
|
||||
elif choice == "2":
|
||||
subprocess.run(['sudo', 'systemctl', 'stop', SERVICE_NAME])
|
||||
root_exec(['systemctl', 'stop', SERVICE_NAME])
|
||||
self.print_status("Service stopped", "success")
|
||||
input(f"\n{Colors.WHITE} Press Enter...{Colors.RESET}")
|
||||
elif choice == "3":
|
||||
subprocess.run(['sudo', 'systemctl', 'restart', SERVICE_NAME])
|
||||
root_exec(['systemctl', 'restart', SERVICE_NAME])
|
||||
self.print_status("Service restarted", "success")
|
||||
input(f"\n{Colors.WHITE} Press Enter...{Colors.RESET}")
|
||||
elif choice == "4":
|
||||
subprocess.run(['sudo', 'systemctl', 'enable', SERVICE_NAME])
|
||||
root_exec(['systemctl', 'enable', SERVICE_NAME])
|
||||
self.print_status("Auto-start enabled", "success")
|
||||
input(f"\n{Colors.WHITE} Press Enter...{Colors.RESET}")
|
||||
elif choice == "5":
|
||||
subprocess.run(['sudo', 'systemctl', 'disable', SERVICE_NAME])
|
||||
root_exec(['systemctl', 'disable', SERVICE_NAME])
|
||||
self.print_status("Auto-start disabled", "success")
|
||||
input(f"\n{Colors.WHITE} Press Enter...{Colors.RESET}")
|
||||
elif choice == "6":
|
||||
|
||||
Reference in New Issue
Block a user