class SystemdMon::DBusManager
Attributes
dbus[RW]
systemd_object[RW]
systemd_service[RW]
Public Class Methods
new()
click to toggle source
# File lib/systemd_mon/dbus_manager.rb, line 7 def initialize self.dbus = DBus::SystemBus.instance self.systemd_service = dbus.service("org.freedesktop.systemd1") self.systemd_object = systemd_service.object("/org/freedesktop/systemd1") systemd_object.introspect if systemd_object.respond_to?("Subscribe") systemd_object.Subscribe else raise SystemdMon::SystemdError, "Systemd is not installed, or is an incompatible version. It must provide the Subscribe dbus method: version 204 is the minimum recommended version." end end
Public Instance Methods
fetch_unit(unit_name)
click to toggle source
# File lib/systemd_mon/dbus_manager.rb, line 19 def fetch_unit(unit_name) path = systemd_object.GetUnit(unit_name).first DBusUnit.new(unit_name, path, systemd_service.object(path)) rescue DBus::Error raise SystemdMon::UnknownUnitError, "Unknown or unloaded systemd unit '#{unit_name}'" end
runner()
click to toggle source
# File lib/systemd_mon/dbus_manager.rb, line 26 def runner main = DBus::Main.new main << dbus main end