if we disable job support in hush and then do something like: $ sleep 999 & then if we ctrl+c the next process, all backgrounded jobs also get that ctrl+c signal $ ps uax | grep sleep ... sleep 999 $ sleep 30 ^C $ ps uax | grep sleep <sleep 999 is dead now> if we enable job support, the correct behavior is observed i'm pretty sure this is because we put all of the process group management code behind ENABLE_HUSH_JOB
after doing some reading on the topic, i'm off the opinion that this behavior is correct. if the shell does not have job support, then it cant properly manage process groups (by definition) in its session.