[Unit] Description=Mosaic tmux fleet agent %i Documentation=https://git.mosaicstack.dev/mosaicstack/stack Requires=mosaic-tmux-holder.service After=mosaic-tmux-holder.service PartOf=mosaic-tmux-holder.service [Service] Type=oneshot RemainAfterExit=yes # No default MOSAIC_TMUX_SOCKET: an absent roster socket means the literal # default tmux socket (no -L). The per-agent .env sets it when the roster names # one; otherwise it stays unset and start-agent-session.sh uses the default socket. Environment=MOSAIC_AGENT_NAME=%i Environment=MOSAIC_AGENT_RUNTIME=pi Environment=MOSAIC_AGENT_WORKDIR=%h EnvironmentFile=-%h/.config/mosaic/fleet/agents/%i.env ExecStart=/bin/bash %h/.config/mosaic/tools/fleet/start-agent-session.sh %i ExecStop=-/bin/bash -lc 'if [ -n "${MOSAIC_TMUX_SOCKET:-}" ]; then tmux -L "$MOSAIC_TMUX_SOCKET" kill-session -t "=%i"; else tmux kill-session -t "=%i"; fi' [Install] WantedBy=default.target