Better Ubuntu systemd detection

Check the running process at PID 1 to determine which init system is currently in use.
This commit is contained in:
Jeff Goldschrafe 2015-08-31 16:50:58 -04:00
parent 3b7117b689
commit c7186236f1
1 changed files with 12 additions and 6 deletions

View File

@ -7,7 +7,7 @@ module VagrantPlugins
end
def update_etc_hostname
return super unless vivid?
return super unless systemd?
sudo("hostnamectl set-hostname '#{short_hostname}'")
end
@ -15,7 +15,7 @@ module VagrantPlugins
if hardy?
# hostname.sh returns 1, so use `true` to get a 0 exitcode
sudo("/etc/init.d/hostname.sh start; true")
elsif vivid?
elsif systemd?
# Service runs via hostnamectl
else
sudo("service hostname start")
@ -26,19 +26,25 @@ module VagrantPlugins
os_version("hardy")
end
def vivid?
os_version("vivid")
end
def renew_dhcp
sudo("ifdown -a; ifup -a; ifup -a --allow=hotplug")
end
private
def init_package
machine.communicate.execute('cat /proc/1/comm') do |type, data|
return data.chomp if type == :stdout
end
end
def os_version(name)
machine.communicate.test("[ `lsb_release -c -s` = #{name} ]")
end
def systemd?
init_package == 'systemd'
end
end
end
end