Support running shell scripts

When rerunning the command, kill the whole child process group instead of only the direct child process to support running a shell script as the command
Invert this test and return nil