Spegnimento automatico in determinati orari?


18

Sono consapevole di poter utilizzare (sudo?) shutdown -h hh:mmIn una finestra del terminale per arrestare un sistema, tuttavia l'utente che ha effettuato l'accesso è un utente kiosk, che è bloccato in modo tale che il terminale (o qualsiasi finestra diversa da Firefox) , del resto) non può essere aperto.

La mia domanda è:
esiste un modo per farlo senza aprire una finestra terminale? Ho letto di cron, ma non riesco proprio a risolverlo.
Come posso cambiare l'orario di spegnimento a seconda di che giorno è?


Vuoi arrestare entro le 02:00?
αғsнιη il

No, scusa, era proprio quello che è stato usato nell'esempio che ho letto. Di solito alle 11:30, ma mi chiedevo se c'è un modo per specificare orari diversi per giorni diversi?
MrAxlee

1
È possibile fare riferimento all'URL per lo spegnimento automatico. askubuntu.com/questions/19774/…
vembutech il

1
@vembutech Quella domanda è per lo spegnimento dopo che è trascorso un certo periodo di tempo - non lo spegnimento in un determinato momento - tuttavia, anche se sarebbe facile adottarlo per le mie esigenze, non posso ancora eseguire finestre aggiuntive oltre a Firefox. Grazie per la tua risposta però! Sembra molto più semplice dell'uso di cron e molto probabilmente lo userò per altri usi :)
MrAxlee

@MrAxlee ... Quindi, vuoi che il sistema si spenga n ore dopo l'accensione?
Kaz Wolfe,

Risposte:


30

Cron funzionerà molto bene per questo.

Aggiungi la riga seguente (con modifiche) alla fine di /etc/crontab:

30 23 * * * root shutdown -h now

Alle 23:30 (23:30), il chiosco si chiuderà. Indipendentemente dall'utente che ha effettuato l'accesso, il comando shutdown viene eseguito come root.

(Se non si desidera utilizzare il crontab globale, accedere come root e utilizzare crontab -e. Utilizzare la stessa sintassi sopra senza root).


Formato cron:

MM HH DD OO WW command

MM: Minuti, 0-59
HH: 24 ore
DD: giorno del mese
OO: mese
WW: giorno della settimana (domenica è 0, lunedì è 1)
command: autoesplicativo


@JacobVlijm Quando è stato aggiunto? Non lo vedo nei documenti ufficiali di Cron .
Kaz Wolfe,

1
Lo guarderò ...
Jacob Vlijm,

1
da crontab (5): il formato del sistema crontab, / etc / crontab include una colonna who che non esiste nei crontab dell'utente. Nel crontab di sistema, cron esegue il comando come l'utente specificato in questa colonna. In un crontab utente, tutti i comandi vengono eseguiti come l'utente che ha creato il crontab.
Jacob Vlijm,

@Whaaaaaat Ottima risposta, funziona perfettamente, grazie !. Qual è la differenza tra -he -s?
MrAxlee

1
@MrAxlee -snon sembra essere "sintassi corretta". -hsignifica arrestare o arrestare il sistema (scelta del sistema - spegnimento preferito)
Kaz Wolfe

6

Un cronjob sembra essere il modo migliore perché puoi specificare orari diversi per giorni diversi. Sui sistemi basati su Gnome puoi semplicemente installare GNOME Shedule Task usando

sudo apt-get install gnome-schedule

e quindi configurare il cronjob utilizzando la GUI.

altrimenti dovresti usare sudo crontab -ee quindi aggiungere le seguenti righe

30 11 * * 1-5 /sbin/shutdown -h now
30 10 * * 0,6 /sbin/shutdown -h now

questo spegne il PC alle 11:30 dal lunedì al venerdì e alle 10:30 il sabato e la domenica. La struttura è molto semplice:

minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command 

Per maggiori informazioni a riguardo puoi anche dare un'occhiata a CronHowto


2
Ho dovuto usare specificamente /sbin/shutdowninvece shutdownperché il mio PATH root cron era diverso rispetto al terminale che ho provato con il mio script.
Jaakko,

3

Siamo in grado di spegnere automaticamente a tempo specificato dal comando semplicemente eseguendo sudo poweroffin crontab.

Se si desidera arrestare il sistema ogni giorno alle 18:30. Digitare il terminale:

sudo crontab -e

modificare

30 18 * * * poweroff

@mrm Ci sono metodi alternativi, potrebbero esserci molte soluzioni diverse per un problema particolare e le risposte così. Non è una risposta utile o no? Per favore, ti chiedo di non votare per rispondere o fare una domanda se non sei chiaro. Leggi la domanda correttamente e vedi se la risposta si applica a quella domanda specifica o meno. Se hai ancora qualche dilemma, puoi chiedere liberamente su Ask Ubuntu Meta o qui e prendere una decisione.
margherita,

In una riga crontab, hai due problemi: poweroffsalta gli script di arresto, che possono essere importanti, ad esempio, per arrestare in sicurezza il tuo database o altro, e hai sudoun crontab in root che non è necessario. Inoltre non hai affrontato come fare riferimento a diversi giorni della settimana come la domanda posta. Quindi no, questo non è un metodo alternativo. Come è, sono due errori e un'omissione. Le altre due risposte fatte un anno prima delle tue sono corrette e funzionano davvero.
sig.

@mrm Beh, sto usando questo script da tre anni e non ho riscontrato alcun problema. E sì questa alternativa e anche il metodo utile corretto. Que è lo spegnimento automatico in determinati orari. C'è un comando per lo spegnimento e per il tempo specificato automaticamente, possiamo usare crontab secondo il nostro requisito. Sarebbe meglio per te se fai una domanda diversa riguardo al tuo problema.
margherita,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.