Debugging Cmd-Queue Powered ScriptsΒΆ
When running a cmd-queue based script it is important to understand that it is primarilly a mechanism for building a sequence of commands to accomplish a task. The execution of those commands is secondary.
Idomatically, most cmd-queue scripts will have the options: --run
and
--print_commands
. By setting --run=0
and --print_commands=1
it
will simply show you the commands that it would execute in order. You can
manually execute these commands step-by-step to diagnose problems.
Also there is usually a --backend
option. Often this is set to
--backend=tmux
, but if you use --backend=serial
it will run everything
in the foreground terminal session allowing you to see everything happen one at
a time. This is very similar to running commands one-by-one, but there are
minor differences so its important to be aware of both strategies.
When using the tmux cmd-queue backend, if jobs are failing you can use tmux to
inspect the status of the jobs. Use tmux a
to attach to one of the tmux
sessions, and you can use CTRL-b
followed by s
to show an interactive
overview of all sessions. You can navigate to inspect what each session is
doing. You will also notice that each tmux session has an associate script that
it sources at the very beginning. You can look at that to see the details of
what is happening in each tmux session (Note: there is a lot of bash
boilerplate in these files, and most of it can be ignored: look for the part of
the code with the # command
comment).