Add Linux support: cross-platform restart, nvidia-ml-py dep, README update
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -41,7 +41,7 @@ dependencies = [
|
||||
"zeroconf>=0.131.0",
|
||||
"pyserial>=3.5",
|
||||
"psutil>=5.9.0",
|
||||
"nvidia-ml-py>=12.0.0; sys_platform == 'win32'",
|
||||
"nvidia-ml-py>=12.0.0",
|
||||
"PyAudioWPatch>=0.2.12; sys_platform == 'win32'",
|
||||
"sounddevice>=0.5",
|
||||
]
|
||||
|
||||
27
server/restart.sh
Normal file
27
server/restart.sh
Normal file
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env bash
|
||||
# Restart the WLED Screen Controller server (Linux/macOS)
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
|
||||
# Stop any running instance
|
||||
PIDS=$(pgrep -f 'wled_controller\.main' 2>/dev/null || true)
|
||||
if [ -n "$PIDS" ]; then
|
||||
echo "Stopping server (PID $PIDS)..."
|
||||
pkill -f 'wled_controller\.main' 2>/dev/null || true
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
# Start server detached
|
||||
echo "Starting server..."
|
||||
cd "$SCRIPT_DIR"
|
||||
nohup python -m wled_controller.main > /dev/null 2>&1 &
|
||||
sleep 3
|
||||
|
||||
# Verify it's running
|
||||
NEW_PID=$(pgrep -f 'wled_controller\.main' 2>/dev/null || true)
|
||||
if [ -n "$NEW_PID" ]; then
|
||||
echo "Server started (PID $NEW_PID)"
|
||||
else
|
||||
echo "WARNING: Server does not appear to be running!"
|
||||
fi
|
||||
@@ -273,19 +273,26 @@ STORE_MAP = {
|
||||
"profiles": "profiles_file",
|
||||
}
|
||||
|
||||
_RESTART_SCRIPT = Path(__file__).resolve().parents[4] / "restart.ps1"
|
||||
_SERVER_DIR = Path(__file__).resolve().parents[4]
|
||||
|
||||
|
||||
def _schedule_restart() -> None:
|
||||
"""Spawn restart.ps1 after a short delay so the HTTP response completes."""
|
||||
"""Spawn a restart script after a short delay so the HTTP response completes."""
|
||||
|
||||
def _restart():
|
||||
import time
|
||||
time.sleep(1)
|
||||
subprocess.Popen(
|
||||
["powershell", "-ExecutionPolicy", "Bypass", "-File", str(_RESTART_SCRIPT)],
|
||||
creationflags=subprocess.DETACHED_PROCESS | subprocess.CREATE_NEW_PROCESS_GROUP,
|
||||
)
|
||||
if sys.platform == "win32":
|
||||
subprocess.Popen(
|
||||
["powershell", "-ExecutionPolicy", "Bypass", "-File",
|
||||
str(_SERVER_DIR / "restart.ps1")],
|
||||
creationflags=subprocess.DETACHED_PROCESS | subprocess.CREATE_NEW_PROCESS_GROUP,
|
||||
)
|
||||
else:
|
||||
subprocess.Popen(
|
||||
["bash", str(_SERVER_DIR / "restart.sh")],
|
||||
start_new_session=True,
|
||||
)
|
||||
|
||||
threading.Thread(target=_restart, daemon=True).start()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user