child/child.go
func (c *Child) Kill() {
	log.Printf("[INFO] (child) killing process")
	c.Lock()
	defer c.Unlock()
	c.kill()
}
func (c *Child) Kill() {
	log.Printf("[INFO] (child) killing process")
	c.Lock()
	defer c.Unlock()
	c.kill()
}
// Kill sends the kill signal to the child process and waits for successful
// termination. If no kill signal is defined, the process is killed with the
// most aggressive kill signal. If the process does not gracefully stop within
// the provided KillTimeout, the process is force-killed. If a splay was
// provided, this function will sleep for a random period of time between 0 and
// the provided splay value to reduce the thundering herd problem. This function
// does not return any errors because it guarantees the process will be dead by
// the return of the function call.