Repository 32bit  Forum
Repository 64bit  Wiki

problemi riavvio immotivato portatile in stato di inattività

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

problemi riavvio immotivato portatile in stato di inattività

Messaggioda NicoMetal » sab ago 04, 2012 19:06

Ciao, ho un problema in cui non so nemmeno da dove cominciare per risolvere.
Poco tempo fa mi feci questo programma in C come sveglia (molto semplice e alla veloce e senza tanti controlli tanto è solo per uso personale):
Codice: Seleziona tutto
#include <time.h>
#include <stdlib.h>
#include <stdio.h>

#define DEFAULT_HOUR 8
#define DEFAULT_MIN  0

  int main( int argc, char *argv[] )
  {
         
        struct tm *ora, *sveglia =malloc(sizeof(struct tm) );
        int riferimento;
        time_t tm_act;
       
       
        switch( argc ){
                case 1: //Caso in cui non vengono immessi argomenti ora di default 8.00.
                       sveglia->tm_hour= DEFAULT_HOUR;
                       sveglia->tm_min= DEFAULT_MIN;
                       break;

                default:
                        sveglia->tm_hour= atoi( argv[1] );
                        sveglia->tm_min =atoi( argv[2] );
                        break;

        }


        tm_act =time(NULL);
        ora =localtime( &tm_act );
        riferimento =ora->tm_min;

        printf( "\n\n*** Ora attuale: %d:%d:00 ***\n", ora->tm_hour, ora->tm_min );
        printf( "\n*** Sveglia alle: %d:%d:00 ***\n", sveglia->tm_hour, sveglia->tm_min );

        while( ora->tm_hour != sveglia->tm_hour || ora->tm_min != sveglia->tm_min ){
                tm_act =time(NULL);
                ora =localtime( &tm_act );
       
                if(ora->tm_min == riferimento+30){
                     printf( "\n\n*** Ora attuale: %d:%d:00 ***\n", ora->tm_hour, ora->tm_min );
                        printf( "\n*** Sveglia alle: %d:%d:00 ***\n", sveglia->tm_hour, sveglia->tm_min );
                        riferimento =ora->tm_min;
                }

        }

        printf( "\nE' l'ora!\n" );
        system( "suona.sh" );
                       
       

        return 0;
  }



FInchè è sul fisso tutto ok. Mentre quando lo uso sul portatile spesso (al risveglio) mi ritrovo il pc riavviato che mi chiede nome e password. Non so e non credo sia il programma in quanto sul fisso questo problema non si è mai presentato, però per sicurezza metto tutto non si sa mai. Qualcuno sa dirmi la causa di questi riavvi e come potrei risolvere? Grazie in anticipo.
Avatar utente
NicoMetal
Linux 2.4
Linux 2.4
 
Messaggi: 366
Iscritto il: dom mag 02, 2010 17:21
Località: Verona
Nome Cognome: Nicola
Slackware: 13.37
Kernel: 3.2.2
Desktop: FluxBox - xfce

Re: problemi riavvio immotivato portatile in stato di inatti

Messaggioda SIV » sab ago 04, 2012 23:09

Ma hai controllato magari con dmesg se c'è stata qualche anomalia?

Offtopic: Sbaglio o esegue tanti cicli quanto il tuo processore permette nell'intervallo di tempo "Ora attuale - Sveglia"?
Non puoi ricontrollare l'orario attuale ad intervalli di tempo più lunghi? Mi sembra uno spreco enorme quell'infinità di cicli :|
Avatar utente
SIV
Linux 2.6
Linux 2.6
 
Messaggi: 918
Iscritto il: mer apr 25, 2007 13:07
Località: Bari (Provincia)

Re: problemi riavvio immotivato portatile in stato di inatti

Messaggioda 414N » dom ago 05, 2012 15:10

:-k
Fammi capire, hai imbastito questo programma per far emettere dei suoni al PC (tramite uno script shell tra l'altro) ad una certa ora, che può essere fissa (come le 8:00 di mattina) oppure specificata in ore e minuti da CLI?
Visto il loop continuo non mi meraviglierei se il portatile si fosse surriscaldato e, di conseguenza, spento e/o riavviato...
Fossi in te farei uso di un cron job (nel caso l'ora sia più fissa che variabile) e/o di at.
at è estremamente flessibile nel programmare l'esecuzione di comandi.
Per esempio, per programmare il lancio di suona.sh tra 20 minuti a partire da adesso puoi scrivere:
Codice: Seleziona tutto
echo "suona.sh" | at now + 20 minutes

oppure, diponendo già di uno script da eseguire:
Codice: Seleziona tutto
at -f suona.sh now + 20 minutes

Ovviamente puoi sempre specificare l'ora esatta che ti interessa.
Consulta il man di at per ulteriori informazioni.
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2882
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: problemi riavvio immotivato portatile in stato di inatti

Messaggioda targzeta » dom ago 05, 2012 16:50

Ma dai NicoMetal, il tuo programma più che sveglia lo chiamerei "termosifone". Anzi scrivici anche un "app" in questo modo, che fa figo :). Pensa, "trasforma il tuo cellulare in un termosifone", oppure, "hai freddo nelle notti di inverno? Installati il mio app".

Prova ad eseguire 'top' prima e mentre è in esecuzione il tuo programma e vedrai che il tuo processore schizza al 100% di uso e ci rimane sempre. Potrebbe davvero essere questo la causa del riavvio del tuo notebook, specialmente se non ben ventilato (e non è raro visto che i notebook si riempiono presto di polvere). Comunque di sicuro gli abbrevia la vita. Evita di usarlo d'ora in poi!!!

at e cron sono stati creati e pensati allo scopo. Comunque dai anche uno sguardo al man di "sleep". Tramite un piccolo script (che è più semplice di quanto si possa immaginare) puoi calcolare i minuti, le ore o i giorni di attesa e passarli come argomento a sleep. L'esempio postato da 414N potrebbe anche essere scritto in questo modo:
Codice: Seleziona tutto
sleep 20m; souna.sh

Anche secondo me at (o cron) è più indicato per queste cose, però se non vuoi installarti un demone sul PC...
Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6189
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: problemi riavvio immotivato portatile in stato di inatti

Messaggioda elendil » lun ago 06, 2012 9:14

spina ha scritto:Prova ad eseguire 'top' prima e mentre è in esecuzione il tuo programma e vedrai che il tuo processore schizza al 100% di uso e ci rimane sempre. Potrebbe davvero essere questo la causa del riavvio del tuo notebook, specialmente se non ben ventilato (e non è raro visto che i notebook si riempiono presto di polvere). Comunque di sicuro gli abbrevia la vita. Evita di usarlo d'ora in poi!!!


Questo è sicuramente il tuo problema, con le temperature africane di questo periodo è ancora più evidente :)
"In wars boy, fools kill other fools for foolish causes." (R. Jordan, The Wheel of Time book 1)
elendil
Linux 2.0
Linux 2.0
 
Messaggi: 103
Iscritto il: sab ago 09, 2008 11:39
Località: Carpineto Romano (RM)
Nome Cognome: Valerio
Slackware: 14
Kernel: 3.2.29
Desktop: xfce
Distribuzione: SalixOS

Re: problemi riavvio immotivato portatile in stato di inatti

Messaggioda NicoMetal » lun ago 06, 2012 9:44

Grazie mille per le risposte siete stati molto esaustivi :) Comunque per curiosità come potrei modificare il sorgente c per far si che la mia sveglia non sovraccarichi il processore? Senza il ciclo che continua a controllare l'ora come posso fare? Sapevo già di crontab però era uno sfizio personale farmelo in c.
se metto uno sleep di n secondi all'interno del ciclo ci potrebbe stare?
Avatar utente
NicoMetal
Linux 2.4
Linux 2.4
 
Messaggi: 366
Iscritto il: dom mag 02, 2010 17:21
Località: Verona
Nome Cognome: Nicola
Slackware: 13.37
Kernel: 3.2.2
Desktop: FluxBox - xfce

Re: problemi riavvio immotivato portatile in stato di inatti

Messaggioda 414N » lun ago 06, 2012 10:04

Penso che il metodo più semplice sia simile a quello proposto da spina a livello shell: calcolare la differenza di tempo tra l'ora attuale e l'ora alla quale voler attivare la sveglia ed usare la system call sleep() per attendere l'istante in cui lanciare il suono. In questo modo il processo va a fare un pisolino senza impegnare il processore attivamente finché il timer non arriva a 0.
Va bene per esercizio, ma come soluzione al problema di lanciare uno script dopo tot tempo non è certamente il meglio ;)
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2882
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: problemi riavvio immotivato portatile in stato di inatti

Messaggioda NicoMetal » lun ago 06, 2012 13:04

grazie a tutti per le risposte!
Avatar utente
NicoMetal
Linux 2.4
Linux 2.4
 
Messaggi: 366
Iscritto il: dom mag 02, 2010 17:21
Località: Verona
Nome Cognome: Nicola
Slackware: 13.37
Kernel: 3.2.2
Desktop: FluxBox - xfce


Torna a Gnu/Linux in genere

Chi c’è in linea

Visitano il forum: Google [Bot] e 2 ospiti