bash: command not found
When running a pre or post-deployment SSH command on your server during a deployment, you may run into an error like the following:
bash: tool: command not found
tool is the name of the tool you're trying to use. For example, something like Composer.
This can happen as a result of a mismatch in paths. DeployHQ when connecting does so non-interactively (i.e. as a non-human user), which is different from when you connect via your terminal using an interactive (human) connection. This then explains why the command works perfectly fine when you run it directly.
You should check that your user's
~/.bash_profile files contain the same paths so that both connection types can correctly access the tool you're using.
This FAQ also provides further information about the differences between running an interactive or non-interactive session.
Testing commands non-interactively
If you need to run a non-interactive connection test to verify that your commands are working correctly, you can connect to your server from a terminal and append
-t to the connection string, along with the command you wish to run.
$ ssh firstname.lastname@example.org -t "your command here"
your command here with the actual command you wish to run, keeping the "" quotes in place. A connection to the server will then be established, the command will run then the connection will immediately close, with the output of the command displayed inline.
$ ssh email@example.com -t "time" real 0m0.000s user 0m0.000s sys 0m0.000s Connection to 22.214.171.124 closed.