Upstart must reserve JOB_PROCESS_SCRIPT_FD
But it isn't reserved so it could be owned by any library which could close it at any time.
In my case that fd was used by nss sss which closes it each lookup or something.
As a result job start fails with "/bin/sh: 0: Can't open /proc/self/fd/9" in log.
Fix: uptart must call somehing like dup2(1, JOB_PROCESS_