Use exit to get around annoying windows stream flushing issues
Use ipc to terminate child process since windows doesn't supporting sending signals