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.
19 lines
487 B
Bash
19 lines
487 B
Bash
#!/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
|