]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/initscripts/system/collectd
apache2: Properly re-execute Apache on restart
[ipfire-2.x.git] / src / initscripts / system / collectd
index 761e9c3f862e23860f599ce1b1af764eed028812..bb8a2f54f4a85f009ca5f54e3c3cf7c66b5d9752 100644 (file)
@@ -1,11 +1,51 @@
 #!/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
@@ -31,30 +71,34 @@ case "$1" in
                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
@@ -88,13 +132,20 @@ case "$1" in
                        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
 
@@ -136,5 +187,3 @@ case "$1" in
                exit 1
                ;;
 esac
-
-# End $rc_base/init.d/collectd