lxc-attach: Fix lost return codes of spawned processes that are killed #4204
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #4203.
lxc-attach swallows the return codes of processes that are terminated via a signal, and by default exits with a return code of 0 (i.e. indicating success) even if the command it tried to execute was terminated.
This patch fixes it by explicitly checking if the process was terminated via a signal, and returning an appropriate exit code.
Note that we add 128 to the signal value to generate the exit code because by convention the exit code is 128 + signal number. e.g. if a process is killed via signal 9, then the error code is 9 + 128 = 137.
Signed-off-by: Mohammed Ajmal Siddiqui ajmalsiddiqui21@gmail.com