// CLI-Controller // Startet und beendet den Anzeige-Browser auf dem Monitor-Rechner (Raspberry Pi). // Chromium wird im Kiosk-Modus auf Display :0 geƶffnet und zeigt die Monitor-Ansicht an. const { spawn } = require('node:child_process') let command; // Referenz auf den laufenden Chromium-Prozess let browserOpen = false; // Status des Browsers, verhindert Mehrfachstart // Startet Chromium im Kiosk-Modus, sofern noch kein Browser laeuft async function openBrowser() { if(!browserOpen) { // Als Benutzer "pi" starten, damit der Prozess Zugriff auf das X-Display hat command = spawn('sudo', ['-upi', 'chromium-browser', '--display=:0', '--incognito', '--noerrors', '--hide-crash-restore-bubble', '--disable-infobars', '--kiosk', 'http://localhost']); command.stdout.on('data', data => { console.log("stdout: ", data.toString()); }); command.stderr.on('data', data => { console.log("sterr: ", data.toString()); }); browserOpen = true; } } // Beendet den laufenden Browserprozess, sofern einer gestartet wurde async function killBrowser() { if(browserOpen) { command.kill(); browserOpen = false; } } module.exports = { openBrowser, killBrowser }