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.