Module: Dory::Systemd

Defined in:
lib/dory/systemd.rb

Class Method Summary collapse

Class Method Details

.has_systemd?Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/dory/systemd.rb', line 5

def self.has_systemd?
  Sh.run_command('which systemctl').success?
end

.set_systemd_service(service:, up:) ⇒ Object



24
25
26
27
28
# File 'lib/dory/systemd.rb', line 24

def self.set_systemd_service(service:, up:)
  action = up ? 'start' : 'stop'
  puts "Requesting sudo to #{action} #{service}".green
  Sh.run_command("sudo systemctl #{action} #{service}").success?
end

.systemd_service_enabled?(service) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
# File 'lib/dory/systemd.rb', line 19

def self.systemd_service_enabled?(service)
  return false unless self.has_systemd?
  !!(Sh.run_command("systemctl status #{service} | head -3").stdout.gsub(/Loaded.*?;/, '') =~ /^\s*enabled;/)
end

.systemd_service_installed?(service) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
# File 'lib/dory/systemd.rb', line 9

def self.systemd_service_installed?(service)
  return false unless self.has_systemd?
  !(Sh.run_command("systemctl status #{service} | head -1").stdout =~ /not-found/)
end

.systemd_service_running?(service) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
17
# File 'lib/dory/systemd.rb', line 14

def self.systemd_service_running?(service)
  return false unless self.has_systemd?
  !!(Sh.run_command("systemctl status #{service} | head -3").stdout =~ /Active:\s+active.*running/)
end