Arrestare il sistema se temperatura >tot [RISOLTO]

Riconoscimento, installazione e configurazione delle periferiche.
Avatar utente
Clefairy
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 581
Iscrizione: martedì 18 luglio 2006, 4:38
Desktop: kde
Distribuzione: kUbuntu 14.04 LTS x86_64

Arrestare il sistema se temperatura >tot [RISOLTO]

Messaggio da Clefairy »

Salve a tutti.

Dovrei arginare una falla del bios: non ha un sistema di controllo della temperatura che spenga il pc se la temperatura raggiunge livelli troppo alti.

Come posso fare?
Ultima modifica di Clefairy il mercoledì 16 giugno 2010, 12:44, modificato 1 volta in totale.
Avatar utente
crunch
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1095
Iscrizione: domenica 8 febbraio 2009, 15:51

Re: Arrestare il sistema se temperatura >tot

Messaggio da crunch »

fai verifcare la temperatura da uno script in background, per esempio estraendola dall'output di sensors
.,¸¸,ø¤º°°º¤ø,¸_¸cRuncH.,¸¸,ø¤º°°º¤ø,¸_¸
          sorry....still crunch
Avatar utente
Clefairy
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 581
Iscrizione: martedì 18 luglio 2006, 4:38
Desktop: kde
Distribuzione: kUbuntu 14.04 LTS x86_64

Re: Arrestare il sistema se temperatura >tot

Messaggio da Clefairy »

Fin li ci sono.

Vorrei che il pc si spegnesse se la temperatura raggiunge livelli critici, ed io non sono presente.

Ad esempio se si bloccasse la ventola dellla cpu, la temperatura salirebbe rapidamente.
Avatar utente
crunch
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1095
Iscrizione: domenica 8 febbraio 2009, 15:51

Re: Arrestare il sistema se temperatura >tot

Messaggio da crunch »

no, allora mi sa che non ci sei poi tanto.....

ho detto in background  ;D
.,¸¸,ø¤º°°º¤ø,¸_¸cRuncH.,¸¸,ø¤º°°º¤ø,¸_¸
          sorry....still crunch
Avatar utente
Clefairy
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 581
Iscrizione: martedì 18 luglio 2006, 4:38
Desktop: kde
Distribuzione: kUbuntu 14.04 LTS x86_64

Re: Arrestare il sistema se temperatura >tot

Messaggio da Clefairy »

Ci sono a sensor, io vedo la temperatura...  ;)

Come dovrei procedere?
zeek
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: domenica 19 ottobre 2008, 18:37
Località: Italia

Re: Arrestare il sistema se temperatura >tot

Messaggio da zeek »

Con un codice così:

Codice: Seleziona tutto

#!/bin/bash
sensors=$(sensors|grep Core|awk '{print $3}'|sed 's/[+,°,C,.]//g'|sed s/.$//g;);
for temp in ${sensors}; do
  if [ ${temp} -gt 100 ]; then
    echo pio foco;
  fi
done
brutto, ma proprio brutto, ottieni che lo script dice 'pio foco' se la temperatura di uno degli n core del tuo piccì sale sopra 100.
Ti basta sostituire echo pio foco; con

Codice: Seleziona tutto

/sbin/shutdown -h now
facendolo girare con cron ogni, ad esempio, 2 minuti, ottieni che il piccì si spenge se sale oltre i 100 gradi.

Però credo che due minuti siano parecchiotti...

edit: aspetta un attimo  :P
Ultima modifica di zeek il mercoledì 9 giugno 2010, 22:30, modificato 1 volta in totale.
Imagine all the people sharing all the world!
... I wonder if you can.
Avatar utente
crunch
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1095
Iscrizione: domenica 8 febbraio 2009, 15:51

Re: Arrestare il sistema se temperatura >tot

Messaggio da crunch »

prova a far girare in rc.local questo

Codice: Seleziona tutto

#!/bin/bash

while [ -n \"FOREVER\" ]; do

sensors | head -18 | tail -1 | cut -c15-16 > file_temp

a=$(cat /home/crunch/file_temp)

if ((a > 70)); then sudo shutdown -h

else echo $(cat /home/crunch/file_temp) > /home/crunch/log_temp

fi

sleep 60

done 
ovviamente dovrai adattare il comando sensors al tuo output e la temperatura di sistema a quella che ti pare

:P
.,¸¸,ø¤º°°º¤ø,¸_¸cRuncH.,¸¸,ø¤º°°º¤ø,¸_¸
          sorry....still crunch
zeek
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: domenica 19 ottobre 2008, 18:37
Località: Italia

Re: Arrestare il sistema se temperatura >tot

Messaggio da zeek »

Ho modificato il posto sopra..
Volevo aggiungere una cosina: puoi usare cron, ma anche il metodo di crunch (loop infinito e un piccolo sleep).

@crunch: perché scrivi la temperatura su un file invece che direttamente in una variabile?
Imagine all the people sharing all the world!
... I wonder if you can.
Avatar utente
crunch
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1095
Iscrizione: domenica 8 febbraio 2009, 15:51

Re: Arrestare il sistema se temperatura >tot

Messaggio da crunch »

e' una mia mania, lasciare quante piu tracce possibili di cio che succede nel pc

;D
.,¸¸,ø¤º°°º¤ø,¸_¸cRuncH.,¸¸,ø¤º°°º¤ø,¸_¸
          sorry....still crunch
Avatar utente
Clefairy
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 581
Iscrizione: martedì 18 luglio 2006, 4:38
Desktop: kde
Distribuzione: kUbuntu 14.04 LTS x86_64

Re: Arrestare il sistema se temperatura >tot

Messaggio da Clefairy »

Grazie per i consigli.

Data la mia niubbezza, ho capito a metà.  :-[


Nel mio /etc ci sono due rc.local, uno in /etc e uno in /etc/init.d: quale uso?


Questo è il risultato di sensors: come lo greppo?

Codice: Seleziona tutto

:~$ sensors
atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage:       +1.24 V  (min =  +0.80 V, max =  +1.60 V)
 +3.3 Voltage:       +3.36 V  (min =  +2.97 V, max =  +3.63 V)
 +5 Voltage:         +5.04 V  (min =  +4.50 V, max =  +5.50 V)
 +12 Voltage:       +12.66 V  (min = +10.20 V, max = +13.80 V)
CPU FAN Speed:         0 RPM  (min =  600 RPM)
CHASSIS FAN 1 Speed:   0 RPM  (min =  600 RPM)
CHASSIS2 FAN Speed:    0 RPM  (min =  600 RPM)
POWER FAN Speed:       0 RPM  (min =  600 RPM)
CPU Temperature:     +32.0°C  (high = +60.0°C, crit = +95.0°C)  
MB Temperature:      +35.0°C  (high = +45.0°C, crit = +95.0°C)  

coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +45.0°C  (high = +76.0°C, crit = +100.0°C)  

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +45.0°C  (high = +76.0°C, crit = +100.0°C)  
Credo che controllare la temperatura ogni 15 o 20 secondi possa essere una soluzione efficace.
Quale delle due soluzioni è la meno impegnativa per la cpu?


Si potrebbe sviluppare un progetto: creare un sw che scarichi i pacchetti necessari e configuri lo script di controllo della temperatura.

Cosa ne dite?
zeek
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: domenica 19 ottobre 2008, 18:37
Località: Italia

Re: Arrestare il sistema se temperatura >tot

Messaggio da zeek »

Intanto guarda quale delle due ti funziona.

Poi, sono script talmente tanto piccoli che non credo ci sia un impiego così diverso della cpu.
Al massimo uno usa il disco l'altro no, ma anche qui: c'è da specificare che è talmente minimo l'utilizzo dello stesso che non possa provocare rallentamenti o appesantimenti, inoltre scrivendo, hai traccia di ciò che succede.

Copia lo script che ho postato così com'è sostituendo 100 con 10, rendilo eseguibile (chmod +x nomeFile) ed eseguilo: ./nomeFile

Copia poi questo:

Codice: Seleziona tutto

#!/bin/bash

while [ -n \"FOREVER\" ]; do

sensors | head -18 | tail -1 | cut -c15-16 > file_temp

a=$(cat /home/${USER}/file_temp)

if ((a > 10)); then echo pio foco

else echo $(cat /home/${USER}/file_temp) > /home/${USER}/log_temp

fi

sleep 60

done 
rendilo eseguibile (chmod +x nomeFile) ed eseguilo: ./nomeFile

Posta il risultato di entrambi gli script: entrambi dovrebbero restituire pio foco, altrimenti non funzionano come dovrebbero.
Imagine all the people sharing all the world!
... I wonder if you can.
Avatar utente
crunch
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1095
Iscrizione: domenica 8 febbraio 2009, 15:51

Re: Arrestare il sistema se temperatura >tot

Messaggio da crunch »

Il comando sensors dovrebbe essere questo


sensors | head -11 | tail -1 | cut -c23-24

che dovrebbe restituire '32', mentre il valore limite e' 95.

Poi copi lo script in /sbin e scrivi in /etc/rc.local

/sbin/nome_script

prima di exit 0

poi riavvia

lo script finale dovrebbe essere questo

Codice: Seleziona tutto

#!/bin/bash

while [ -n \"FOREVER\" ]; do

sensors | head -11 | tail -1 | cut -c23-24 > /home/crunch/file_temp

a=$(cat /home/crunch/file_temp)

if ((a > 95)); then sudo shutdown -h now

else echo $(cat /home/crunch/file_temp) > /home/crunch/log_temp

fi

sleep 60

done 
.,¸¸,ø¤º°°º¤ø,¸_¸cRuncH.,¸¸,ø¤º°°º¤ø,¸_¸
          sorry....still crunch
Avatar utente
Clefairy
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 581
Iscrizione: martedì 18 luglio 2006, 4:38
Desktop: kde
Distribuzione: kUbuntu 14.04 LTS x86_64

Re: Arrestare il sistema se temperatura >tot

Messaggio da Clefairy »

Eccomi qua, scusate il ritardo. Per quanto riguarda gli script di zeek:

1.sh

Codice: Seleziona tutto

#!/bin/bash
sensors=$(sensors|grep Core|awk '{print $3}'|sed 's/[+,°,C,.]//g'|sed s/.$//g;);
for temp in ${sensors}; do
  if [ ${temp} -gt 10 ]; then
    echo pio foco;
  fi
done

Codice: Seleziona tutto

:~/Scrivania$ ./1.sh 
pio foco
pio foco

2.sh

Codice: Seleziona tutto

#!/bin/bash

while [ -n \"FOREVER\" ]; do

sensors | head -18 | tail -1 | cut -c15-16 > file_temp

a=$(cat /home/${USER}/file_temp)

if ((a > 10)); then echo pio foco

else echo $(cat /home/${USER}/file_temp) > /home/${USER}/log_temp

fi

sleep 60

done 

Codice: Seleziona tutto

:~/Scrivania$ ./2.sh 
cat: /home/clef/file_temp: Nessun file o directory
cat: /home/clef/file_temp: Nessun file o directory
cat: /home/clef/file_temp: Nessun file o directory
Aggiustando i percorsi in /Scrivania non succede nulla, i due files rimangono vuoti.

Codice: Seleziona tutto

#!/bin/bash

while [ -n \"FOREVER\" ]; do

sensors | head -18 | tail -1 | cut -c15-16 > /home/${USER}/Scrivania/file_temp

a=$(cat /home/${USER}/Scrivania/file_temp)

if ((a > 10)); then echo pio foco

else echo $(cat /home/${USER}/Scrivania/file_temp) > /home/${USER}/Scrivania/log_temp

fi

sleep 60

done 

Codice: Seleziona tutto

:~/Scrivania$ ./2.sh 

Ultima modifica di Clefairy il sabato 12 giugno 2010, 20:14, modificato 1 volta in totale.
zeek
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: domenica 19 ottobre 2008, 18:37
Località: Italia

Re: Arrestare il sistema se temperatura >tot

Messaggio da zeek »

Allora aspetta, crunch ha ripostato lo script per adattarlo all'output del tuo sensors, quindi devi utilizzare se mai il secondo che ha postato.

Ora che so che il mio script funziona anche con il tuo sensors, ti posto lo script completo:

Codice: Seleziona tutto

#!/bin/bash
while [ 1 ]; do
  sensors=$(sensors|grep Core|awk '{print $3}'|sed 's/[+,°,C,.]//g'|sed s/.$//g;);
  for temp in ${sensors}; do
	 if [ ${temp} -gt 90 ]; then
		sudo shutdown -h now;
	 fi
  done
  sleep 5;
done
Ora puoi copiarlo in un file, renderlo eseguibile ed inserire in /etc/rc.local

/percorso/del/file &

la & alla fine serve per lanciare lo script in background.
Altrimenti puoi lanciarlo con cron...

La stessa cosa puoi fare con lo script di crunch, seguendo il suo post precedente.

edit: comunque sei sicura che il tuo bios non faccia già questa cosa? Mi sembra strano.
Devi cambiare lo script di crunch, se vuoi usare quello, sostituendo il suo nome utente con il tuo.

Spero di esserti stato utile.
Ciao!
Imagine all the people sharing all the world!
... I wonder if you can.
einstein1969
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 931
Iscrizione: mercoledì 7 dicembre 2005, 11:52

Re: Arrestare il sistema se temperatura >tot

Messaggio da einstein1969 »

Scusate ma la sensor-applet non implementa gia' il controllo?
Avatar utente
Clefairy
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 581
Iscrizione: martedì 18 luglio 2006, 4:38
Desktop: kde
Distribuzione: kUbuntu 14.04 LTS x86_64

Re: Arrestare il sistema se temperatura >tot

Messaggio da Clefairy »

einstein1969 ha scritto: Scusate ma la sensor-applet non implementa gia' il controllo?
Purtroppo no, la proprietà "sensor limit" influisce solo sull'ampiezza del grafico dell'icona.


zeek ha scritto: Ora che so che il mio script funziona anche con il tuo sensors, ti posto lo script completo:

Codice: Seleziona tutto

#!/bin/bash
while [ 1 ]; do
  sensors=$(sensors|grep Core|awk '{print $3}'|sed 's/[+,°,C,.]//g'|sed s/.$//g;);
  for temp in ${sensors}; do
	 if [ ${temp} -gt 90 ]; then
		sudo shutdown -h now;
	 fi
  done
  sleep 5;
done
Ora puoi copiarlo in un file, renderlo eseguibile ed inserire in /etc/rc.local

/percorso/del/file &

la & alla fine serve per lanciare lo script in background.
Ho cambiato la temperatura a 53 gradi, per provare, ma non funziona.
Se lo faccio girare nel terminale, quando il core raggiunge i 53 gradi, mi viene chiesta la password di amministratore.
einstein1969
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 931
Iscrizione: mercoledì 7 dicembre 2005, 11:52

Re: Arrestare il sistema se temperatura >tot

Messaggio da einstein1969 »

Clefairy ha scritto:
einstein1969 ha scritto: Scusate ma la sensor-applet non implementa gia' il controllo?
Purtroppo no, la proprietà "sensor limit" influisce solo sull'ampiezza del grafico dell'icona.


Ho cambiato la temperatura a 53 gradi, per provare, ma non funziona.
Se lo faccio girare nel terminale, quando il core raggiunge i 53 gradi, mi viene chiesta la password di amministratore.
devi attivare Alarm

gia' con alarm ti compare un messaggio come questo superato il limite massimo. E nel campo "high alarm command" puoi inserire il comando di shutdown (per esempio preceduto da uno sleep di x secondi)
Allegati
Immagine.jpg
zeek
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1331
Iscrizione: domenica 19 ottobre 2008, 18:37
Località: Italia

Re: Arrestare il sistema se temperatura >tot

Messaggio da zeek »

Clefairy ha scritto:
zeek ha scritto: Ora che so che il mio script funziona anche con il tuo sensors, ti posto lo script completo:

Codice: Seleziona tutto

#!/bin/bash
while [ 1 ]; do
  sensors=$(sensors|grep Core|awk '{print $3}'|sed 's/[+,°,C,.]//g'|sed s/.$//g;);
  for temp in ${sensors}; do
	 if [ ${temp} -gt 90 ]; then
		sudo shutdown -h now;
	 fi
  done
  sleep 5;
done
Ora puoi copiarlo in un file, renderlo eseguibile ed inserire in /etc/rc.local

/percorso/del/file &

la & alla fine serve per lanciare lo script in background.
Ho cambiato la temperatura a 53 gradi, per provare, ma non funziona.
Se lo faccio girare nel terminale, quando il core raggiunge i 53 gradi, mi viene chiesta la password di amministratore.
allora:

/etc/rc.local viene eseguito da root all'avvio del sistema, questo significa che una volta piazzata la chiamata allo script in quel file, devi riavviare, e fare il test.

Se vuoi lanciaro a mano, devi lanciarlo con sudo.

Per quanto riguarda la possibilità di farlo con le applet, non lo sapevo! Certo se si può fare è meglio non utilizzare questi script fatti in casa.
Imagine all the people sharing all the world!
... I wonder if you can.
Avatar utente
Clefairy
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 581
Iscrizione: martedì 18 luglio 2006, 4:38
Desktop: kde
Distribuzione: kUbuntu 14.04 LTS x86_64

Re: Arrestare il sistema se temperatura >tot

Messaggio da Clefairy »

einstein1969 ha scritto:
Clefairy ha scritto:
einstein1969 ha scritto: Scusate ma la sensor-applet non implementa gia' il controllo?
Purtroppo no, la proprietà "sensor limit" influisce solo sull'ampiezza del grafico dell'icona.


Ho cambiato la temperatura a 53 gradi, per provare, ma non funziona.
Se lo faccio girare nel terminale, quando il core raggiunge i 53 gradi, mi viene chiesta la password di amministratore.
devi attivare Alarm

gia' con alarm ti compare un messaggio come questo superato il limite massimo. E nel campo "high alarm command" puoi inserire il comando di shutdown (per esempio preceduto da uno sleep di x secondi)
>:(  Era li che mi guardava...  :-[
E che comando dovrei inserire?
Ora che ho impostato l'allarme a temperatura 53, se la raggiunge mi appare un messaggio di notifica, ma non sono riuscita a far spegnere il pc.
Ho provato con i vari comandi precedenti, shutdown, shutdown now, shutdown -h now, sudo shutdown -h now...
zeek ha scritto: /etc/rc.local viene eseguito da root all'avvio del sistema, questo significa che una volta piazzata la chiamata allo script in quel file, devi riavviare, e fare il test.
Errore di scrittura in rc.local, funziona!  (b2b)
Ultima modifica di Clefairy il domenica 13 giugno 2010, 16:14, modificato 1 volta in totale.
Avatar utente
crunch
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1095
Iscrizione: domenica 8 febbraio 2009, 15:51

Re: Arrestare il sistema se temperatura >tot

Messaggio da crunch »

@ Clefairy

Secondo me non ti conviene lasciar gestire una operazione cosi' delicata ed importante ad una applet di Gnome  8)

Meglio lo script che ti dicevo o in rc.local o come gia' suggerito in background col comando finale & lanciato con sudo
.,¸¸,ø¤º°°º¤ø,¸_¸cRuncH.,¸¸,ø¤º°°º¤ø,¸_¸
          sorry....still crunch
Scrivi risposta

Ritorna a “Driver e periferiche”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 8 ospiti