diff --git a/lib/chef/sugar/init.rb b/lib/chef/sugar/init.rb index 7b5d393..3464bbe 100644 --- a/lib/chef/sugar/init.rb +++ b/lib/chef/sugar/init.rb @@ -25,7 +25,8 @@ module Init # @return [Boolean] # def systemd?(node) - IO.read('/proc/1/comm').chomp == 'systemd' + file = '/proc/1/comm' + File.exist?(file) && IO.read(file).chomp == 'systemd' end # diff --git a/spec/unit/chef/sugar/init_spec.rb b/spec/unit/chef/sugar/init_spec.rb index a2eb50e..c7658a4 100644 --- a/spec/unit/chef/sugar/init_spec.rb +++ b/spec/unit/chef/sugar/init_spec.rb @@ -22,13 +22,22 @@ .and_return("systemd") node = {} - expect(described_class.systemd?(node)).to be true + expect(described_class.systemd?(node)).to be true end it 'is false when /proc/1/comm is not systemd' do node = {} expect(described_class.systemd?(node)).to be false end + + it 'is false when /proc/1/comm does not exist' do + allow(File).to receive(:exist?) + .with("/proc/1/comm") + .and_return(false) + + node = {} + expect(described_class.systemd?(node)).to be false + end end describe '#upstart?' do