[hack] Fix issue where server dies if flow status is sent SIGINT
[hack] Fix issue where server dies if flow status is sent SIGINT

Summary: I do something like this all the time:

    $ flow status /path/to/large_repo/
    The flow server's version didn't match the client's, so it exited.
    Going to launch a new one.

    Flow server launched for /path/to/large_repo

    Spawned flow server (child pid=123456)
    Logs will go to /tmp/flow/zSpathzStozSlarge_repo.log
    flow is still initializing; this can take some time. [processing]

and then for one reason or another I kill the `flow status` with `<ctrl><c>`.
Ideally that would only kill the `flow status` but leave the server alive.
However...

    $ flow status /path/to/large_repo/
    flow is still initializing; this can take some time. [processing]
    Flow server launched for /path/to/large_repo

    Spawned flow server (child pid=78912345)
    Logs will go to /tmp/flow/zSpathzStozSlarge_repo.log

Instead the new `flow status` would wait for the server to finish initializing
and then the server would die and the `flow status` would start a new server.
If you're running with a large repo this is sooooo annoying.

Here's what was happening:

1. When you do `<ctrl><c>`, Unix sends `SIGINT` to the whole process group.
2. The new server was properly running in a new process group so it survives
3. The logging daemon was NOT properly running in a new process group so it dies
4. The new server would finish initializing
5. The new server would go to flush the logging daemon and find a broken pipe
6. The new server would die a horrible death

Reviewed By: bhosmer

Differential Revision: D2678741

fb-gh-sync-id: 7da3b46164d31ac83aeda4dd019a98551809691f

facebook/flow,mroch/flow,shiftcars/flow,graue/flow,gabro/flow,popham/flow,jdelStrother/flow,jeffmo/flow,gabelevi/flow,shiftcars/flow,jgrund/flow,samwgoldman/flow,AgentME/flow,jamesgpearce/flow,jdelStrother/flow,jamesgpearce/flow,JonathanUsername/flow,JonathanUsername/flow,samwgoldman/flow,cesarandreu/flow,facebook/flow,AprilArcus/flow,TiddoLangerak/flow,graue/flow,MichaelDeBoey/flow,d14b3l/flow,TiddoLangerak/flow,chenglou/flow,gabelevi/flow,jamesgpearce/flow,ylu1317/flow,shiftcars/flow,mroch/flow,facebook/flow,chenglou/flow,AprilArcus/flow,samwgoldman/flow,AgentME/flow,cesarandreu/flow,ylu1317/flow,graue/flow,chenglou/flow,ForbesLindesay/flow,OCamlPro/flow,gabelevi/flow,mroch/flow,jeffmo/flow,ForbesLindesay/flow,popham/flow,claudiopro/flow,popham/flow,facebook/flow,MichaelDeBoey/flow,nmote/flow,ForbesLindesay/flow,facebook/flow,shiftcars/flow,d14b3l/flow,gabelevi/flow,JonathanUsername/flow,mroch/flow,MichaelDeBoey/flow,gabro/flow,popham/flow,gabro/flow,cesarandreu/flow,nmote/flow,AprilArcus/flow,jamesgpearce/flow,fletcherw/flow,fletcherw/flow,JonathanUsername/flow,mroch/flow,claudiopro/flow,ylu1317/flow,popham/flow,gabro/flow,OCamlPro/flow,shiftcars/flow,nmote/flow,jeffmo/flow,AgentME/flow,mroch/flow,mroch/flow,jdelStrother/flow,graue/flow,nmote/flow,jeffmo/flow,popham/flow,jeffmo/flow,OCamlPro/flow,AgentME/flow,jdelStrother/flow,chenglou/flow,jdelStrother/flow,claudiopro/flow,JonathanUsername/flow,nmote/flow,jamesgpearce/flow,ForbesLindesay/flow,nmote/flow,fletcherw/flow,samwgoldman/flow,ForbesLindesay/flow,jgrund/flow,samwgoldman/flow,AprilArcus/flow,jamesgpearce/flow,AprilArcus/flow,d14b3l/flow,jgrund/flow,facebook/flow,gabelevi/flow,shiftcars/flow,OCamlPro/flow,JonathanUsername/flow,graue/flow,nmote/flow,cesarandreu/flow,jgrund/flow,gabelevi/flow,AgentME/flow,gabro/flow,ylu1317/flow,JonathanUsername/flow,gabro/flow,TiddoLangerak/flow,jamesgpearce/flow,AprilArcus/flow,TiddoLangerak/flow,popham/flow,d14b3l/flow,samwgoldman/flow,claudiopro/flow,MichaelDeBoey/flow,chenglou/flow,claudiopro/flow,gabelevi/flow,jdelStrother/flow,jgrund/flow,graue/flow,d14b3l/flow,facebook/flow,fletcherw/flow,chenglou/flow,TiddoLangerak/flow,d14b3l/flow,jeffmo/flow,fletcherw/flow,MichaelDeBoey/flow,ylu1317/flow,jgrund/flow,samwgoldman/flow,ForbesLindesay/flow,fletcherw/flow