r/serterm: Deploy serial terminal multiplexer

Using `tmux`, we can spawn a bunch of `picocom` processes for the serial
ports connected to other server's console ports.  The
_serial-terminal-server_ service manages the `tmux` server process,
while the individual _serial-terminal-server-window@.service_ units
create a window in the `tmux` session.

The serial terminal server runs as a dedicated user.  The SSH server is
configured to force this user to connect to the `tmux` session.  This
should help ensure the serial consoles are accessible, even if the
Active Directory server is unavailable.
This commit is contained in:
2024-11-07 21:36:07 -06:00
parent 8b9cf1985a
commit 6115762847
16 changed files with 280 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
#!/bin/sh
# vim: set sw=4 ts=4 sts=4 et :
if [ -z "${TMUX}" ]; then
exec tmux new-session -s serial -d "$0"
fi
tmux \
set-option -t serial:0 -w remain-on-exit on \; \
rename-window -t serial:0 info
cat <<'EOF'
This window must remain open to keep the tmux server/session running.
If all windows are closed, tmux will exit and will not be able to
receive commands to add new windows for hotplugged devices.
Use `respawn-window` to restart all serial terminal windows.
EOF