summaryrefslogtreecommitdiff
path: root/lib/facter/systemd.rb
blob: 3ac0a1e23b00c4986879599e3916f9bb8bdbf968 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Fact: systemd
#
# Purpose: 
#   Determine whether SystemD is the init system on the node
#
# Resolution:
#   Check the name of the process 1 (ps -p 1)
#
# Caveats:
#

# Fact: systemd-version
#
# Purpose: 
#   Determine the version of systemd installed
#
# Resolution:
#  Check the output of systemctl --version
#
# Caveats:
#

Facter.add(:systemd) do
  confine :kernel => :linux
  setcode do
    result = false
    init_process_name = Facter::Core::Execution.exec('ps -p 1 -o comm=')
    if init_process_name.eql? 'systemd'
      result = true
    end
  end
end

Facter.add(:systemd_version) do
  confine :systemd => true
  setcode do
    version = Facter::Core::Execution.exec("systemctl --version | grep 'systemd' | awk '{ print $2 }'")
  end
end