If any of these requirements is not met for any machine declared in <bhost>, LAM will not be able to start. By running recon first, the user will be able to quickly identify and correct problems in the setup that would inhibit LAM from starting.
The local machine where recon is invoked must be one of the machines specified in <bhost>.
The <bhost> file is a LAM boot schema written in the host file syntax. See bhost(5). Instead of the command line, a boot schema can be specified in the LAMBHOST environment variable. Otherwise a default file, bhost.def, is used. LAM seaches for <bhost> first in the local directory and then in the installation directory under etc/.
recon tests each machine defined in <bhost> by attempting to execute on it the tkill(1) command using its "pretend" option (no action is taken). This test, if successful, indicates that all the requirements listed above are met, and thus LAM can be started on the machine. If the attempt is successful, the next machine is checked. In case the attempt fails, a descriptive error message is displayed and recon stops unless the -a option is used, in which case recon continues checking the remaining machines.
If recon takes a long time to finish successfully, this will be a good indication to the user that the LAM system to be started has slow communication links or heavily loaded machines, and it might be preferable to exclude or replace some of the machines in the system.
Note that the default remote shell command can be overriden at invocation time with the LAMRSH environment variable. The LAMRSH environment variable can be set with a new command and optional command line arguments. For example, the 1.x series of ssh clients require the -x flag to be specified to suppress standard ssh information from being sent to the standard error (which would cause recon to fail). For example (for the C shell and its derrivates):
Normally, recon uses two remote shell invocations to each node. The first remote shell invocation is used to determine the user's shell on the remote node. The second remote shell invocation is used to launch the desired LAM binary on the remote node. If the -b switch is used, recon will assume that the user's shell on all remote nodes is the same as it is on the local node, and therefore only one remote shell invocation is used, which is noticably faster.
In either case, on remote nodes, if the user's shell is not csh, tcsh, or bash, .profile is invoked by LAM before invoking any LAM binary. This allows the user to setup paths and any necessary environment before LAM binaries are invoked (csh and tcsh users can put such setup in their $HOME/.cshrc or $HOME/.tcshrc files; bash users can put this setup in their $HOME/.bashrc file).