Visualizzazione post con etichetta timeout. Mostra tutti i post
Visualizzazione post con etichetta timeout. Mostra tutti i post

venerdì 31 gennaio 2025

Windows: Impostare un Timeout per lo spegnimento dello schermo dal Prompt dei Comandi

Bloccare il computer quando ci si allontana dalla postazione è una delle regole fondamentali della sicurezza informatica. Proteggere i dati da accessi non autorizzati, anche per brevi periodi di assenza, è essenziale per evitare spiacevoli sorprese. 
Il PC può essere bloccato manualmente dall'utente in diversi modi ad esempio tramite la combinazione WIN+L, tramite il comando Rundll32.exe user32.dll,LockWorkStation oppure premendo CTRL+ALT+CANC e selezionando BLOCCA.  

Oltre a bloccare il computer potremmo impostare un timeout che spenga lo schermo quando non viene rilevata alcuna attività riducendo, in questo modo, il consumo energetico.

Il timeout per lo spegnimento dello schermo può essere impostato utilizzando il Prompt dei comandi attraverso i seguenti passaggi:
  1. Aprire il Prompt dei comandi come amministratore.
    - Digitare CMD nella barra di ricerca di Windows.
    - Cliccare con il tasto destro su Prompt dei comandi e selezionare l’opzione Esegui come amministratore.

  2. Eseguire il comando per impostare il timeout.
    Utilizzare il seguente comando per configurare il tempo di attesa (in secondi) prima che il monitor si spenga
    powercfg.exe /SETACVALUEINDEX SCHEME_CURRENT SUB_VIDEO VIDEOCONLOCK <tempo>
    Sostituire <tempo> con il numero di secondi desiderati. Ad esempio, per impostare un timeout di 5 minuti (300 secondi), il comando sarà
    powercfg.exe /SETACVALUEINDEX SCHEME_CURRENT SUB_VIDEO VIDEOCONLOCK 300
    VIDEOCONLOCK determina dopo quanto tempo il monitor viene spento quando il pc si trova nella schermata di blocco.
    Se si intende spegnere il monitor dopo un determinato periodo di inattività con il pc non bloccato si utilizza il comando 
    powercfg.exe /setacvalueindex SCHEME_CURRENT SUB_VIDEO VIDEOIDLE <tempo>
    VIDEOIDL consente di stabilire il tempo di inattività dopo il quale il monitor si spegne quando il pc non è nella schermata di blocco.

  3. Impostare il timeout per la batteria.
    Se il PC è alimentato a batteria, vanno utilizzati i seguenti comandi al posto di quelli precedenti
    powercfg.exe /SETDCVALUEINDEX SCHEME_CURRENT SUB_VIDEO VIDEOCONLOCK <tempo>
    powercfg.exe /SETDCVALUEINDEX SCHEME_CURRENT SUB_VIDEO VIDEOIDLE <tempo>

  4. Attivare la configurazione.
    Per rendere effettive le modifiche, esegui il comando
    powercfg.exe /SETACTIVE SCHEME_CURRENT
    Questo comando assicura che le impostazioni appena definite vengano applicate correttamente.

    Blocca schermo
    FIG 1 - Blocca schermo


I timeout per lo spegnimento dello schermo possono essere configurati anche tramite GUI tuttavia il Prompt dei comandi offre un maggiore controllo e una personalizzazione più avanzata. È particolarmente utile per gli utenti esperti, gli amministratori di sistema o chiunque voglia imparare ad automatizzare alcune attività legate alla sicurezza del proprio PC.




sabato 30 luglio 2022

Linux: Comando timeout

Il comando timeout fa parte del pacchetto GNU core utilities installato in quasi tutte le distribuzioni Linux e può essere utilizzato nel caso in cui si vuole eseguire un comando che non dispone di un'opzione di timeout incorporata.
L'utility a riga di comando timeout, infatti, consente di eseguire un comando specificato e terminarlo, se è ancora in esecuzione, dopo un determinato periodo di tempo. 

Sintassi

timeout [OPZIONI] DURATA COMMANDO [ARG]…

La DURATA può essere specificata con un numero intero positivo o un numero in virgola mobile, seguito da un suffisso opzionale di unità:
s - secondi (default)
m - minuti
h - ore
d - giorni

Se non viene specificata alcuna unità, l'impostazione predefinita è secondi. Se la durata è impostata a zero, il timeout associato è disabilitato.

Utilizzo di timeout

Di seguito viene mostrato, con alcuni semplici esempi, come può essere utilizzato il comando di timeout.

timeout 5 ping 8.8.8.8
Termina il comando ping dopo 5 secondi
Linux, timeout
FIG 1 - Linux, timeout

timeout 1.2m ping 8.8.8.8
Termina il comando ping dopo 1 minuto e 20 secondi

Per eseguire un comando che richiede privilegi elevati basta anteporre sudo al comando timeout.
sudo timeout 1.2m ping 8.8.8.8

Invio di uno specifico segnale

Se non viene specificato alcun segnale, il timeout invia il segnale SIGTERM al comando gestito quando viene raggiunto il limite di tempo. È possibile specificare quale segnale inviare utilizzando l'opzione -s (--signal).
Per visualizzare l'elenco di tutti i segnali disponibili si utilizza il comando
kill -l
kill, elenco segnali disponibili
FIG 2 - kill, elenco segnali disponibili


sudo timeout 1m -s SIGKILL ping 8.8.8.8
sudo timeout 1m -s 9 ping 8.8.8.8
I comandi sopra riportati inviano il segnale SIGKILL per terminare il comando ping dopo un minuto. Il segnale può essere specificato all'interno del comando indicando il nome (SIGKILL) oppure il numero corrispondente (9).

Forzare la chiusura del processo con l'opzione -k

SIGTERM può essere catturato o ignorato da alcuni processi. In queste situazioni, il processo continuerà a funzionare dopo l'invio del segnale di terminazione.
Per assicurarsi che il comando monitorato venga terminato, va utilizzata l'opzione -k (--kill-after) seguita da un periodo di tempo. In questo modo, dopo il raggiungimento del limite di tempo indicato, il comando di timeout invia il segnale SIGKILL al programma gestito che non può essere catturato o ignorato.

Nell'esempio seguente, timeout esegue il comando ping per un minuto e, se non viene terminato, lo termina dopo dieci secondi.
sudo timeout -k 10 1m ping 8.8.8.8

Return code

Il comando timeout restituisce, come codice di ritorno, 124 quando viene raggiunto il limite di tempo, in caso contrario viene restituito il codice di ritorno del comando gestito.

Per visualizzare il return code del comando anche quando viene raggiunto il limite di tempo, si  utilizza l'opzione --preserve-status:
timeout --preserve-status 10 ping 8.8.8.8

Eseguire il comando in primo piano

Per impostazione predefinita, il timeout esegue il comando gestito in background. Per eseguire il comando in primo piano si utilizza l'opzione --foreground:
timeout --foreground 3m ./scriptfile.sh

Questa opzione è utile quando si vuole eseguire un comando interattivo che richiede l'input dell'utente.