GS-Agent spawns processes and monitors them. These processes also monitor the liveness of the GSA process. When the GSA is not found, the process terminates itself.
When running "./gs.sh demo" and killing the GSA we noticed that some of the GSC processes were not shutdown properly. The stack trace below shows a remote call to the ZooKeeperAttributeStore waiting for a response. Hence the GSC won't continue its termination sequence until the wait time is over.