code: func (c *Conn) initConnection() error {
  	var err error
  
  	c.sysconn, err = dbus.SystemBus()
  	if err != nil {
  		return err
  	}
  
  	// This never fails, even if the service is not running atm.
  	c.sysobj = c.sysconn.Object(dbusInterface, dbus.ObjectPath(dbusPath))
  
  	rule := fmt.Sprintf("type='signal',path='%s',interface='%s',sender='%s',member='Reloaded'",
  		dbusPath, dbusInterface, dbusInterface)
  	c.sysconn.BusObject().Call("org.freedesktop.DBus.AddMatch", 0, rule)
  
  	rule = fmt.Sprintf("type='signal',interface='org.freedesktop.DBus',member='NameOwnerChanged',path='/org/freedesktop/DBus',sender='org.freedesktop.DBus',arg0='%s'",
  		dbusInterface)
  	c.sysconn.BusObject().Call("org.freedesktop.DBus.AddMatch", 0, rule)
  
  	c.signal = make(chan *dbus.Signal, 10)
  	c.sysconn.Signal(c.signal)
  
  	return nil
  }
docs: // Initialize D-Bus connection.