code: func NewBinary(binPath string, args []string, gracefulShutdownInterval ...time.Duration) *Binary {
  	gracefulTime := 15 * time.Second
  	if len(gracefulShutdownInterval) > 0 {
  		gracefulTime = gracefulShutdownInterval[0]
  	}
  	return &Binary{
  		binPath:                  binPath,
  		args:                     args,
  		gracefulShutdownInterval: gracefulTime,
  		exitCh:                   make(chan struct{}),
  	}
  }
docs: // NewBinary creates a new binary module with the given path