juju: github.com/juju/juju/service/systemd Index | Files | Directories

package systemd

import "github.com/juju/juju/service/systemd"


Package Files

cmdline.go conf.go serialize.go service.go shims.go


const (
    LibSystemdDir          = "/lib/systemd/system"
    EtcSystemdDir          = "/etc/systemd/system"
    EtcSystemdMultiUserDir = EtcSystemdDir + "/multi-user.target.wants"
const CleanShutdownService = "" /* 238 byte string literal not displayed */

CleanShutdownService is added to machines to ensure DHCP-assigned IP addresses are released on shutdown, reboot, or halt. See bug http://pad.lv/1348663 for more info.

const CleanShutdownServicePath = "/etc/systemd/system/juju-clean-shutdown.service"

CleanShutdownServicePath is the full file path where CleanShutdownService is created.


var NewDBusAPI = func() (DBusAPI, error) {
    return dbus.New()

func IsRunning Uses

func IsRunning() bool

IsRunning returns whether or not systemd is the local init system.

func ListCommand Uses

func ListCommand() string

ListCommand returns a command that will list the services on a host.

func ListServices Uses

func ListServices() ([]string, error)

ListServices returns the list of installed service names.

func SysdReload Uses

func SysdReload() error

SysdReload reloads Service daemon.

func UnitSerialize Uses

func UnitSerialize(opts []*unit.UnitOption) io.Reader

UnitSerialize encodes all of the given UnitOption objects into a unit file. Renamed from Serialize from github.com/coreos/go-systemd/unit so as to not conflict with the exported internal function in export_test.go.

type Cmdline Uses

type Cmdline struct {
    // contains filtered or unexported fields

Cmdline exposes the core operations of interacting with systemd units.

func (Cmdline) ListAll Uses

func (cl Cmdline) ListAll() ([]string, error)

ListAll returns the names of all enabled systemd units.

type DBusAPI Uses

type DBusAPI interface {
    ListUnits() ([]dbus.UnitStatus, error)
    StartUnit(string, string, chan<- string) (int, error)
    StopUnit(string, string, chan<- string) (int, error)
    LinkUnitFiles([]string, bool, bool) ([]dbus.LinkUnitFileChange, error)
    EnableUnitFiles([]string, bool, bool) (bool, []dbus.EnableUnitFileChange, error)
    DisableUnitFiles([]string, bool) ([]dbus.DisableUnitFileChange, error)
    GetUnitProperties(string) (map[string]interface{}, error)
    GetUnitTypeProperties(string, string) (map[string]interface{}, error)
    Reload() error

DBusAPI exposes all the systemd API methods needed by juju. To regenerate the mock for this interface, run "go generate" from the package directory. go:generate mockgen -package systemd_test -destination dbusapi_mock_test.go github.com/juju/juju/service/systemd DBusAPI

type DBusAPIFactory Uses

type DBusAPIFactory = func() (DBusAPI, error)

Type alias for a DBusAPI factory method.

type Service Uses

type Service struct {

    ConfName        string
    UnitName        string
    DirName         string
    FallBackDirName string
    Script          []byte
    // contains filtered or unexported fields

Service provides visibility into and control over a systemd service.

func NewService Uses

func NewService(
    name string, conf common.Conf, dataDir string, newDBus DBusAPIFactory, fallBackDirName string,
) (*Service, error)

NewService returns a new reference to an object that implements the Service interface for systemd.

func NewServiceWithDefaults Uses

func NewServiceWithDefaults(name string, conf common.Conf) (*Service, error)

NewServiceWithDefaults returns a new systemd service reference populated with sensible defaults.

func (Service) Conf Uses

func (s Service) Conf() common.Conf

Conf implements service.Service.

func (*Service) Exists Uses

func (s *Service) Exists() (bool, error)

Exists implements Service.

func (*Service) Install Uses

func (s *Service) Install() error

Install implements Service.

func (*Service) InstallCommands Uses

func (s *Service) InstallCommands() ([]string, error)

InstallCommands implements Service.

func (*Service) Installed Uses

func (s *Service) Installed() (bool, error)

Installed implements Service.

func (Service) Name Uses

func (s Service) Name() string

Name implements service.Service.

func (*Service) Remove Uses

func (s *Service) Remove() error

Remove implements Service.

func (*Service) Running Uses

func (s *Service) Running() (bool, error)

Running implements Service.

func (*Service) Start Uses

func (s *Service) Start() error

Start implements Service.

func (*Service) StartCommands Uses

func (s *Service) StartCommands() ([]string, error)

StartCommands implements Service.

func (*Service) Stop Uses

func (s *Service) Stop() error

Stop implements Service.

func (*Service) WriteService Uses

func (s *Service) WriteService() error

WriteService implements UpgradableService.WriteService

type ShimExec Uses

type ShimExec interface {
    RunCommands(args exec.RunParams) (*exec.ExecResponse, error)

type ShimFileOps Uses

type ShimFileOps interface {
    RemoveAll(name string) error
    MkdirAll(dirname string) error
    CreateFile(filename string, data []byte, perm os.FileMode) error



Package systemd imports 20 packages (graph) and is imported by 68 packages. Updated 2019-10-17. Refresh now. Tools for package owners.