Candy,
You are confusing two concepts. To understand, note the applications that are running on the client and server machines. With GDC you will see a gdc.exe running on your PC. On your application (I'm guessing Linux) server you will see "fglrun" processes.
For parent/child processes, as your have observed if the child process has been launched from StartMenu or via RUN WITHOUT WAITING, the parent process id = 1, and if the parent fglrun processes dies, the child fglrun process will continue.
The other concept is the fglrun process(es) on your server, your gdc.exe on the PC, and the question is effectively what happens if one of them dies. For the GDC dying case, you need to be aware of two things.
There is the FGLPROFILE setting gui.protocol.pingTimeout
http://4js.com/online_documentation/fjs-fgl-manual-html/#c_fgl_feconn_ping_wait.html. The front-end process sends a ping every X seconds to the fglrun process. This FGLPROFILE setting says if I haven't received a ping in Y seconds then assume the front-end process has died and stop the fglrun process. So when the GDC dies, you should expect the fglrun process to remain running, consuming a license for a number of minutes depending upon the value of this timeout. Web Users are very familiar with this setting because it is a lot easier for a user to close a browser tab and historically they have bumped into this issue a lot.
The second thing you need to be aware of is OPTIONS ON CLOSE APPLICATION
http://4js.com/online_documentation/fjs-fgl-manual-html/#c_fgl_programs_010.html. If the front-end dies in an orderly fashion, then it is possible to send a signal to the fglrun process and have it end in a tidy fashion without any UI. You may have seen something during the 3.10 EAP where I pointed out that this functionality know works with the Genero Browser Client.
My advise is to leave the timeout settings on their default values, to have OPTIONS ON CLOSE APPLICATION in your code to ensure a clean tidy up where possible, and also investigate a CPU based license if you find that you hit User Limit Exceeded because you have fglrun processes consuming a license when they are waiting to time-out. Also a good sysadmin practise is to identify day old fglrun processes and query wether they should still be alive.
I am curious about your program that was hung at openPipe. Did it have any UI? The pingTimeout would not come info play if there was no UI. If there was UI, is the openPipe blocking the timeout from occurring.
Reuben