Wondering how to fix ‘strace: exec: Exec format error’? We can help you in fixing it.
Here at Bobcares, we have seen several such Linux related errors as part of our Server Management Services for web hosts, Linux users, and online service providers.
Today we’ll take a look at the cause for this error and see how to fix it.
What causes strace exec: Exec format error to occur
The strace command can’t proceed further if an executable script doesn’t reference the shell to be used for execution. In such cases, this error occurs.
If the script has the shell reference at the top like shown below, then there is no problem.
#!/bin/ksh
…
#!/bin/sh
…
#!/bin/bash
However, if a script has no shell binary reference then it will fail to execute as it will not be in the expected executable format. But in case, if the necessary shell reference is provided then strace will trace the new shell process normally.
How we fix strace exec: Exec format error
One of our customers approached us with the same error message.
He ran the below strace command and ran into the error.
# strace -ae -o /tmp/output.log ./ocmstart.sh
strace: exec: Exec format error
Now let’s see how our Support Engineers help our customer in fixing this error.
Here, in the above command, we see that it is not referencing the shell used for execution.
For that, we provided the below command to the customer to execute
# strace -ae -o /tmp/output.log $SHELL ./ocmstart.sh
Here, we are executing the script with the default user shell which will provide a binary file process for strace to work on and it will proceed.
In another case, the customer didn’t add the shebang on the starting line of the script.
Shebang comprises of #! characters. So the shebang (#!/bin/bash) must be put on the first line of the script so that the kernel knows how to run it.
[Need any further assistance in Linux related errors? – We’re available to help you]
Conclusion
In short, this error occurs when the strace command can’t proceed further due to an executable script not being referenced by the shell to be used for execution. Today, we saw how our Support Engineers resolve this error.
0 Comments