links
user(sudo -i)
adduser kiosk
sudo apt install -y curl
curl -fsSL https://www.phidgets.com/downloads/setup_linux | bash -
apt install -y libphidget22 phidget22networkserver
apt install -y libphidget22*
apt install -y phidget22*
apt install -y python3
apt install -y npm
apt install -y nodejs
systemctl enable --now phidget22networkserver
systemctl status phidget22networkserver --no-pager
#!/usr/bin/env bash
set -euo pipefail
PORT_FILE="/home/recharjme/Desktop/ports.txt"
WEB_ROOT="/home/recharjme/Desktop/APP"
DEFAULT_PHIDGET_PORT="8989"
DEFAULT_WEB_PORT="80"
PHIDGET_BIN="$(command -v phidget22networkserver || true)"
SERVICE_NAME="phidget22networkserver.service"
DROPIN_DIR="/etc/systemd/system/${SERVICE_NAME}.d"
DROPIN_FILE="${DROPIN_DIR}/override.conf"
log(){ printf '%s\n' "$*"; }
get_ports(){
local p_port="" w_port=""
if [[ -f "$PORT_FILE" ]]; then
p_port="$(sed -n '1p' "$PORT_FILE" | tr -d '\r' || true)"
w_port="$(sed -n '2p' "$PORT_FILE" | tr -d '\r' || true)"
[[ -z "${p_port:-}" ]] && p_port="$DEFAULT_PHIDGET_PORT"
[[ -z "${w_port:-}" ]] && w_port="$DEFAULT_WEB_PORT"
else
p_port="$DEFAULT_PHIDGET_PORT"
w_port="$DEFAULT_WEB_PORT"
mkdir -p "$(dirname "$PORT_FILE")"
fi
printf '%s\n%s\n' "$p_port" "$w_port" > "$PORT_FILE"
PHIDGET_PORT="$p_port"
WEB_PORT="$w_port"
}
ensure_phidget_server_port(){
if [[ -z "$PHIDGET_BIN" ]]; then
log "phidget22networkserver binary not found. Install phidget22networkserver first."; exit 1
fi
mkdir -p "$DROPIN_DIR"
cat > "$DROPIN_FILE" <<EOF
[Service]
Environment=PHIDGET_PORT=${PHIDGET_PORT}
ExecStart=
ExecStart=${PHIDGET_BIN} -p \${PHIDGET_PORT}
EOF
systemctl daemon-reload
systemctl enable --now "$SERVICE_NAME"
systemctl restart "$SERVICE_NAME"
}
start_web_server(){
if [[ ! -d "$WEB_ROOT" ]]; then
log "Web root missing: $WEB_ROOT"; mkdir -p "$WEB_ROOT"
fi
# kill any existing python http.server on this port
if command -v ss >/dev/null 2>&1; then
pids="$(ss -lptn 'sport =' ":${WEB_PORT}" | awk -F',' '/users:/ {print $2}' | sed 's/pid=//g' || true)"
[[ -n "${pids:-}" ]] && xargs -r kill -9 <<<"$pids" || true
fi
nohup bash -c "cd '$WEB_ROOT'; python3 -m http.server '${WEB_PORT}'" >/var/log/kiosk_http.log 2>&1 &
}
open_browser(){
local url="http://localhost:${WEB_PORT}"
log "Open: ${url}"
if command -v xdg-open >/dev/null 2>&1; then
nohup xdg-open "$url" >/dev/null 2>&1 || true
fi
}
main(){
get_ports
ensure_phidget_server_port
systemctl status "$SERVICE_NAME" --no-pager || true
start_web_server
log "phidget server port: ${PHIDGET_PORT}"
log "web server port: ${WEB_PORT}"
log "web root: ${WEB_ROOT}"
open_browser
}
main "$@"
root@recharjme-Ubuntu-Linux-1:/home/recharjme/Desktop# bash ./stack_script
phidget22networkserver.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable phidget22networkserver
Job for phidget22networkserver.service failed because the control process exited with error code.
See "systemctl status phidget22networkserver.service" and "journalctl -xeu phidget22networkserver.service" for details.
root@recharjme-Ubuntu-Linux-1:/home/recharjme/Desktop# cd ./recharjme