var serverStartTimeout … type server … // newServer returns a new server with the given name, commands, health check // URLs, etc. func newServer(name string, start, kill, restart *exec.Cmd, urls []string, outputFileName string, monitorParent, restartOnExit bool, systemdUnitName string) *server { … } // commandToString format command to string. func commandToString(c *exec.Cmd) string { … } func (s *server) String() string { … } // start starts the server by running its commands, monitors it with a health // check, and ensures that it is restarted if applicable. // // Note: restartOnExit == true requires len(s.healthCheckUrls) > 0 to work properly. func (s *server) start() error { … } // kill runs the server's kill command. func (s *server) kill() error { … } func (s *server) stopUnit() error { … }