From patchwork Wed Mar 25 06:35:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arne Fitzenreiter X-Patchwork-Id: 2858 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 48nJKR3FpGz3yBb for ; Wed, 25 Mar 2020 06:35:55 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail02.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 48nJKP6NYJz1SV; Wed, 25 Mar 2020 06:35:53 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 48nJKP4Hl5z2yZb; Wed, 25 Mar 2020 06:35:53 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 48nJKN0rgrz2xqt for ; Wed, 25 Mar 2020 06:35:52 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPSA id 48nJKM0sxzz1SV; Wed, 25 Mar 2020 06:35:51 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003ed25519; t=1585118151; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc; bh=gd+88BLtbKj1WcFZiPK/ppCJAgtrxrWEWwrhRHBmEBg=; b=lDJ9V8ahxKMPkTN9lqGa17oAWmzkzOBWRnI/C2A9aVkMsMWxXE0ZyEH+gkBGxL7DLS+dVA 22mQsKBHxkK+yTDQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=202003rsa; t=1585118151; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc; bh=gd+88BLtbKj1WcFZiPK/ppCJAgtrxrWEWwrhRHBmEBg=; b=oZDqvE6SSoWXsSHuedNBc3L0gM8KkGwwc8wNu+UHDFOYjMQF9ovAu8JEjvtxkyg3P38SCV uGOqoTG/j7anTi3L0iruX6LIVna5ZXVjc1F/xmRWCjt3nR0RvO6K/kJOAN+9O2QKroieh3 TgLQYiV/Wco75rhFqpE3I5Y5eXPUbPjwzYAqEl5BgHYUbV9hy40KpVSd8BxcFkkM8GxNzU IB/3AApJL7Z9armZP4d1mkYGl82T67jev58dCqHcDtWVQsBWNJ4ggp4jy2Pfwa+gUj0CiU xRw4wFlO2olH0nr0wFF+0oD/c9tIbi1OnN7l1cyJ58eXkBjoChLOTv0dmZqglg== From: Arne Fitzenreiter To: development@lists.ipfire.org Subject: [PATCH] collectd: run sensors-detect in background Date: Wed, 25 Mar 2020 07:35:38 +0100 Message-Id: <20200325063538.15980-1-arne_f@ipfire.org> Authentication-Results: mail01.ipfire.org; auth=pass smtp.mailfrom=arne_f@ipfire.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Arne Fitzenreiter Errors-To: development-bounces@lists.ipfire.org Sender: "Development" on some machines the i2c sensor search take very long time which cause hang at first boot. Now the search is started in background and waited for max one minute before continue load of collectd. On such machines collectd will not get all sensors at first startup. fixes #12329 Signed-off-by: Arne Fitzenreiter Reviewed-by: Michael Tremer --- src/initscripts/system/collectd | 56 ++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/src/initscripts/system/collectd b/src/initscripts/system/collectd index 5233525f0..20072780a 100644 --- a/src/initscripts/system/collectd +++ b/src/initscripts/system/collectd @@ -6,6 +6,28 @@ 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 + 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 + + 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 @@ -42,27 +64,23 @@ case "$1" in # 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