#!/bin/sh
-# Begin $rc_base/init.d/collecd
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007-2022 IPFire Team <info@ipfire.org> #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
. /etc/sysconfig/rc
. $rc_functions
eval $(/usr/local/bin/readhash /var/ipfire/main/settings)
+scan_for_sensors() {
+ touch /var/lock/sensors_search
+ # pre scan and try to load modules
+ "yes" | /usr/sbin/sensors-detect > /dev/null 2>&1
+ if [ -e /etc/sysconfig/lm_sensors ]; then
+
+ # Module load
+ . /etc/sysconfig/lm_sensors
+ for modul in $BUS_MODULES $HWMON_MODULES ; do
+ modprobe $modul > /dev/null 2>&1;
+ done
+ fi
+
+ # Final scan
+ "yes" | /usr/sbin/sensors-detect > /dev/null 2>&1
+
+ if [ ! -e /etc/sysconfig/lm_sensors ]; then
+ echo "#No Sensors detected " > /etc/sysconfig/lm_sensors
+ fi
+ rm /var/lock/sensors_search
+}
+
if [ "$RRDLOG" = '' ]; then
RRDLOG=/var/log/rrd
fi
if [ "${machine:0:3}" = "arm" ]; then
touch /etc/sysconfig/lm_sensors
fi
+ if [ "${machine:0:7}" = "aarch64" ]; then
+ touch /etc/sysconfig/lm_sensors
+ fi
+
+ # Do not search for sensors when running on AWS
+ if [ -e "/var/run/aws-instance-id" ]; then
+ touch /etc/sysconfig/lm_sensors
+ fi
# At first run search for sensors with sensors-detect
if [ ! -e /etc/sysconfig/lm_sensors ]; then
- boot_mesg "Searching for Sensors..."
-
- # pre scan and try to load modules
- "yes" | /usr/sbin/sensors-detect > /dev/null
- if [ -e /etc/sysconfig/lm_sensors ]; then
-
- # Module load
- . /etc/sysconfig/lm_sensors
- for modul in $BUS_MODULES $HWMON_MODULES ; do
- modprobe $modul > /dev/null 2>&1;
- done
- fi
-
- # Final scan
- "yes" | /usr/sbin/sensors-detect > /dev/null
- evaluate_retval
+ # Don't run at next boot again
+ touch /etc/sysconfig/lm_sensors
+ boot_mesg -n "Searching for Sensors..."
+ scan_for_sensors &
+ sleep 2
+ fi
- if [ ! -e /etc/sysconfig/lm_sensors ]; then
- echo "#No Sensors detected " > /etc/sysconfig/lm_sensors
- fi
+ if [ -e /var/lock/sensors_search ]; then
+ for (( i=1; i<30; i++)) do
+ if [ ! -e /var/lock/sensors_search ]; then
+ break;
+ fi
+ boot_mesg -n "."
+ sleep 2
+ done
fi
+ boot_mesg ""
# Load sensor modules only first start
if [ ! -e /var/lock/sensors_modules ]; then
sed -i -e 's|^#include "/etc/collectd.thermal"$|include "/etc/collectd.thermal"|g' /etc/collectd.conf
fi
+ # Enable cpufreq plugin if cpufreq found
+ if [ ! -e /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq ]; then
+ sed -i -e "s|^LoadPlugin cpufreq|#LoadPlugin cpufreq|g" /etc/collectd.conf
+ else
+ sed -i -e "s|^#LoadPlugin cpufreq|LoadPlugin cpufreq|g" /etc/collectd.conf
+ fi
+
# Enable swap plugin if swap found
if [ "$(swapon -s | wc -l)" == "0" ]; then
sed -i -e "s|^LoadPlugin swap|#LoadPlugin swap|g" /etc/collectd.conf
else
sed -i -e "s|^#LoadPlugin swap|LoadPlugin swap|g" /etc/collectd.conf
fi
-
+
# sync after config update...
sync
exit 1
;;
esac
-
-# End $rc_base/init.d/collectd