From 3171cff666c24da02be64f3f2dc1f433df36c7be Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 27 Apr 2011 17:35:18 +0000 Subject: [PATCH] systemd integration git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@5964 7894878c-1315-0410-8ee3-d5d059ff63e0 --- prog/detect/sensors-detect | 24 +++++++++++++++++++++--- prog/init/lm_sensors.service | 14 ++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 prog/init/lm_sensors.service diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect index b6fd1e9e..9c63152e 100755 --- a/prog/detect/sensors-detect +++ b/prog/detect/sensors-detect @@ -2415,7 +2415,7 @@ sub initialize_conf if (!$use_udev) { # Try some known default udev db locations, just in case if (-e '/dev/.udev.tdb' || -e '/dev/.udev' - || -e '/dev/.udevdb') { + || -e '/dev/.udevdb' || -e '/run/udev') { $use_udev = 1; $dev_i2c = '/dev/i2c-'; } @@ -6459,6 +6459,22 @@ EOT } 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 + return; + } + print "Copy prog/init/lm_sensors.init to /etc/init.d/lm_sensors\n". "for initialization at boot time.\n" unless -f "/etc/init.d/lm_sensors"; @@ -6514,8 +6530,10 @@ sub main exit -1; } - if (-x "/sbin/service" && -f "/etc/init.d/lm_sensors" && - -f "/var/lock/subsys/lm_sensors") { + 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"); } diff --git a/prog/init/lm_sensors.service b/prog/init/lm_sensors.service new file mode 100644 index 00000000..2a6243de --- /dev/null +++ b/prog/init/lm_sensors.service @@ -0,0 +1,14 @@ +[Unit] +Description=Initialize hardware monitoring sensors +After=syslog.target + +[Service] +EnvironmentFile=/etc/sysconfig/lm_sensors +Type=oneshot +RemainAfterExit=yes +ExecStart=-/sbin/modprobe -qab $BUS_MODULES $HWMON_MODULES +ExecStart=/usr/bin/sensors -s +ExecStop=-/sbin/modprobe -qabr $BUS_MODULES $HWMON_MODULES + +[Install] +WantedBy=multi-user.target