Charles-François Natali added the comment:
> I think it should at least include "bad interpreter", otherwise it is a tad
> misleading.
It just forwards the error raised by the exec system call:
$ cat foo.sh
#! /bin/foo
$ strace ./foo.sh
execve("./foo.sh", ["./foo.sh"], [/* 38 vars */]) = -1
R. David Murray added the comment:
Subprocess is throwing the correct exception, what it isn't doing is preserving
stderr. The stderr output in question is not coming from the *subprocess* (the
process hasn't been created yet). It would be nice if that stderr output could
be added to the ex