From the child process docs, 
>If the process terminated normally, code is the final exit code of the process, otherwise `null`. If the process terminated due to receipt of a signal, signal is the string name of the signal, otherwise `null`.

So if it exits abnormally, child process gives you null, and `isRunning()` is `true`