From 80fd5d5d103fee491dfa11582323f3cd1f4edf9f Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 23 Nov 2025 03:16:54 +0000 Subject: [PATCH] Fix talkkonnect terminal initialization error in systemd service PROBLEM: - talkkonnect fails with "Cannot Initialize Terminal" error - Service shows "Talkkonnect Terminated Abnormally" in logs - Root cause: talkkonnect uses termbox-go which requires a TTY - Systemd services don't provide TTY by default SOLUTION: - Added Environment="TERM=dumb" to systemd service - Added StandardInput=null to prevent terminal initialization - Both changes allow talkkonnect to run headless as a service CHANGES: - Updated install_kiosk_0.9.6-1.sh with the fix - Created install_kiosk_0.9.6-2.sh (new version with fix) - Added fix_talkkonnect_terminal.sh for quick patching of existing installations --- fix_talkkonnect_terminal.sh | 90 + install_kiosk_0.9.6-1.sh | 2 + install_kiosk_0.9.6-2.sh | 9724 +++++++++++++++++++++++++++++++++++ 3 files changed, 9816 insertions(+) create mode 100755 fix_talkkonnect_terminal.sh create mode 100755 install_kiosk_0.9.6-2.sh diff --git a/fix_talkkonnect_terminal.sh b/fix_talkkonnect_terminal.sh new file mode 100755 index 0000000..89ae8eb --- /dev/null +++ b/fix_talkkonnect_terminal.sh @@ -0,0 +1,90 @@ +#!/bin/bash +################################################################################ +# Fix talkkonnect Terminal Initialization Error +################################################################################ +# This script fixes the "Cannot Initialize Terminal" error that occurs when +# talkkonnect is run as a systemd service without a TTY. +# +# The fix adds: +# - Environment="TERM=dumb" to use minimal terminal mode +# - StandardInput=null to prevent terminal initialization +################################################################################ + +set -e + +echo "================================" +echo " Talkkonnect Terminal Fix" +echo "================================" +echo + +# Get kiosk user (usually 'kiosk') +KIOSK_USER=$(ls -l /home | grep '^d' | grep -v lost | head -1 | awk '{print $NF}') + +if [ -z "$KIOSK_USER" ]; then + echo "❌ Error: Could not find kiosk user" + exit 1 +fi + +echo "Kiosk user: $KIOSK_USER" +echo + +# Check if talkkonnect is installed +if ! systemctl list-unit-files | grep -q talkkonnect.service; then + echo "❌ Error: talkkonnect service not found" + echo " Install talkkonnect first using the main install script" + exit 1 +fi + +echo "[1/3] Stopping talkkonnect service..." +sudo systemctl stop talkkonnect + +echo "[2/3] Updating systemd service..." +sudo tee /etc/systemd/system/talkkonnect.service > /dev/null <