From 0624a34840bb55a7a46f2489a0add31534119f89 Mon Sep 17 00:00:00 2001 From: khali Date: Mon, 6 Jul 2015 11:51:24 +0000 Subject: sensors-detect: Fix systemd paths git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@6303 7894878c-1315-0410-8ee3-d5d059ff63e0 --- CHANGES | 3 +++ prog/detect/sensors-detect | 53 ++++++++++++++++++++++++++++------------------ 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/CHANGES b/CHANGES index a33bc424..9a761f58 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ lm-sensors CHANGES file ----------------------- +SVN HEAD + sensors-detect: Fix systemd paths + 3.4.0 (2015-06-25) documentation: Update the note about libsensors license sensors.conf.5: Enhance the hysteresis documentation diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect index fb6658c0..6c0c5664 100755 --- a/prog/detect/sensors-detect +++ b/prog/detect/sensors-detect @@ -2728,7 +2728,7 @@ sub isa_read_i5d6 # AUTODETECTION # ################# -use vars qw($dev_i2c $sysfs_root); +use vars qw($dev_i2c $sysfs_root $systemd_systemctl $systemd_system_dir); sub initialize_conf { @@ -2789,6 +2789,19 @@ sub initialize_conf exit -1; } } + + # Detect systemd presence and paths + if (-x "/usr/bin/systemctl") { + $systemd_systemctl = "/usr/bin/systemctl"; + } elsif (-x "/bin/systemctl") { + $systemd_systemctl = "/bin/systemctl"; + } + + if (-d "/usr/lib/systemd/system") { + $systemd_system_dir = "/usr/lib/systemd/system"; + } elsif (-d "/lib/systemd/system") { + $systemd_system_dir = "/lib/systemd/system"; + } } # [0] -> VERSION @@ -7090,19 +7103,16 @@ EOT print SYSCONFIG "HWMON_MODULES=\"", join(" ", @{$hwmon_modules}), "\"\n"; close(SYSCONFIG); - if (-x "/bin/systemctl" && -d "/lib/systemd/system" && - ! -f "/lib/systemd/system/lm_sensors.service") { - print "Copy prog/init/lm_sensors.service to /lib/systemd/system\n". - "and run 'systemctl enable lm_sensors.service'\n". - "for initialization at boot time.\n"; - return; - } - - if (-x "/bin/systemctl" && - -f "/lib/systemd/system/lm_sensors.service") { - system("/bin/systemctl", "enable", "lm_sensors.service"); - system("/bin/systemctl", "start", "lm_sensors.service"); - # All done, don't check for /etc/init.d/lm_sensors + if ($systemd_systemctl && $systemd_system_dir) { + if (-f "$systemd_system_dir/lm_sensors.service") { + system($systemd_systemctl, "enable", "lm_sensors.service"); + system($systemd_systemctl, "start", "lm_sensors.service"); + # All done, don't check for /etc/init.d/lm_sensors + } else { + print "Copy prog/init/lm_sensors.service to $systemd_system_dir\n". + "and run 'systemctl enable lm_sensors.service'\n". + "for initialization at boot time.\n"; + } return; } @@ -7170,13 +7180,6 @@ sub main exit -1; } - if (-x "/bin/systemctl" && -f "/lib/systemd/system/lm_sensors.service") { - system("/bin/systemctl", "stop", "lm_sensors.service"); - } elsif (-x "/sbin/service" && -f "/etc/init.d/lm_sensors" && - -f "/var/lock/subsys/lm_sensors") { - system("/sbin/service", "lm_sensors", "stop"); - } - initialize_kernel_version(); initialize_conf(); initialize_pci(); @@ -7187,6 +7190,14 @@ sub main initialize_modules_supported(); initialize_cpu_list(); + if ($systemd_systemctl && $systemd_system_dir && + -f "$systemd_system_dir/lm_sensors.service") { + system("$systemd_systemctl", "stop", "lm_sensors.service"); + } elsif (-x "/sbin/service" && -f "/etc/init.d/lm_sensors" && + -f "/var/lock/subsys/lm_sensors") { + system("/sbin/service", "lm_sensors", "stop"); + } + print "# sensors-detect revision $revision\n"; initialize_dmi_data(); print_dmi_summary(); -- cgit v1.2.1