type OpenRCInitSystem … // ServiceStart tries to start a specific service func (openrc OpenRCInitSystem) ServiceStart(service string) error { … } // ServiceStop tries to stop a specific service func (openrc OpenRCInitSystem) ServiceStop(service string) error { … } // ServiceRestart tries to reload the environment and restart the specific service func (openrc OpenRCInitSystem) ServiceRestart(service string) error { … } // ServiceExists ensures the service is defined for this init system. // openrc writes to stderr if a service is not found or not enabled // this is in contrast to systemd which only writes to stdout. // Hence, we use the Combinedoutput, and ignore the error. func (openrc OpenRCInitSystem) ServiceExists(service string) bool { … } // ServiceIsEnabled ensures the service is enabled to start on each boot. func (openrc OpenRCInitSystem) ServiceIsEnabled(service string) bool { … } // ServiceIsActive ensures the service is running, or attempting to run. (crash looping in the case of kubelet) func (openrc OpenRCInitSystem) ServiceIsActive(service string) bool { … } // EnableCommand return a string describing how to enable a service func (openrc OpenRCInitSystem) EnableCommand(service string) string { … } type SystemdInitSystem … // EnableCommand return a string describing how to enable a service func (sysd SystemdInitSystem) EnableCommand(service string) string { … } // reloadSystemd reloads the systemd daemon func (sysd SystemdInitSystem) reloadSystemd() error { … } // ServiceStart tries to start a specific service func (sysd SystemdInitSystem) ServiceStart(service string) error { … } // ServiceRestart tries to reload the environment and restart the specific service func (sysd SystemdInitSystem) ServiceRestart(service string) error { … } // ServiceStop tries to stop a specific service func (sysd SystemdInitSystem) ServiceStop(service string) error { … } // ServiceExists ensures the service is defined for this init system. func (sysd SystemdInitSystem) ServiceExists(service string) bool { … } // ServiceIsEnabled ensures the service is enabled to start on each boot. func (sysd SystemdInitSystem) ServiceIsEnabled(service string) bool { … } // ServiceIsActive will check is the service is "active". In the case of // crash looping services (kubelet in our case) status will return as // "activating", so we will consider this active as well. func (sysd SystemdInitSystem) ServiceIsActive(service string) bool { … } // GetInitSystem returns an InitSystem for the current system, or nil // if we cannot detect a supported init system. // This indicates we will skip init system checks, not an error. func GetInitSystem() (InitSystem, error) { … }