I'm unclear about how the `:new_pgroup` option is supposed to work. My understanding is that any process spawned with this flag set (on a windows `host_os`) will behave differently when the process is killed. I have tested this theory to no avail and the documentation on this flag is quite sparse. The exit status is still 1. 

The exit status on my Ubuntu virtual box is 1. It appears that when you send a TERM/INT signal PhantomJS interprets this signal as an unexpected termination and returns 1. This does not necessarily mean that the process doesn't have the opportunity to cleanly quit (we don't have enough evidence to say one way or the other that it does not). I propose changing the behavior to issue a `quit` command via the open web socket and use the existing process termination logic as a fall back. I think that you can expect an exit status of 0 when you quit from within the PhantomJS interface. 

![linux_test](https://f.cloud.github.com/assets/1455238/129775/9053b7f6-6fec-11e2-8c92-00c55c85480f.png)

I will be pushing a new change to use the `RbConfig` as this is a more reliable means of detecting the OS environment. How would you like to proceed with the child process termination?