Arresto di Linux in 30 secondi?


8

Domanda semplice: quali parametri possono essere utilizzati per arrestare un computer che esegue Linux / OSX in 30 secondi? Ho sempre eseguito Windows, dove andrei, shutdown -s -t 30ma i parametri sono diversi. L'ho cercato qui, ma ti consentirà di spegnere un computer solo in un momento specifico (come le 8:00) anziché in un determinato numero di secondi.

Risposte:


8

In OS X puoi spegnere in un minuto usando il seguente comando:

sudo shutdown -h +1

AFAIK, non è possibile specificare secondi anziché minuti con questo comando.

Puoi anche riavviare utilizzando -rinvece di -h.


MODIFICARE:

Come indicato nel commento, è possibile aggiungere un ritardo a livello di codice, quindi arrestare immediatamente il sistema con

shutdown -h now

Ma nota che quel comando richiederà l'accesso come root.


meh. Quindi non usare decimali. Suppongo vada bene, mi chiedevo perché sto cercando di lavorare su un'applicazione Java multipiattaforma in grado di spegnere un computer. Quindi ho potuto farlo dormire per 30 secondi prima di spegnerlo immediatamente. Ma sudo shutdown -hspegnerebbe il computer senza un ritardo intenzionale?

@icnhzabot sudo shutdown -h nowspegne immediatamente il computer senza preavviso.
Austin,

ok grazie. quindi per l'accesso root dovrei fare sudo shutdown -h nowbene?
icnhzabot,

@icnhzabot Che non funzionerà per uno script / programma automatizzato perché richiede all'utente la password dell'amministratore nella riga di comando. Dovresti eseguire il tuo script come root e chiamare shutdown -h now. Se hai bisogno di aiuto, dovresti fare una nuova domanda (supponendo che non puoi trovare la risposta altrove). Inoltre, non dimenticare di contrassegnare la risposta migliore qui come "accettata" se ha risposto alla tua domanda.
Austin,

3

Usando le chiamate di base, non vedo un modo per farlo in pochi secondi, ma sembra che tu possa farlo in pochi minuti:

time Time is the time at which shutdown will bring the system down and
     may be the word now (indicating an immediate shutdown) or specify
     a future time in one of two formats: +number, or yymmddhhmm,
     where the year, month, and day may be defaulted to the current
     system values.  The first form brings the system down in number
     minutes and the second at the absolute time specified.

In altre parole:

shutdown -h +1

Se vuoi spegnerlo in 1 minuto.


sai se funzionerebbe con .5?

C'è un errore qui: l' -ropzione è per il riavvio, non per l'arresto. Devi usare -hper lo spegnimento.
Austin,

@Austin ugh, risolto quel problema.

3

Come sottolineato, il comando

sudo shutdown -h +1

Aggiunge un minuto

Se volessi farlo in pochi secondi o ore o qualcosa di molto specifico, potresti fare qualcosa del tipo:

shutdown -h `date --date "now + 60 seconds"`

EDIT: quanto sopra non funziona più su build più recenti di Ubuntu. Grazie per averlo segnalato @zitrax. Il mio errore hai ragione.

Ma puoi ancora farlo, ma sembra forse al minuto più vicino.

sudo shutdown -h `date --date "now + 10 minutes" "+%H:%M"`

Il che è in qualche modo inutile quando il parametro + m è più facile da digitare .... ahhh vabbè.


Non funziona (almeno su Linux), questo dà il tempo in un altro formato del previsto.
Zitrax,

@Zitrax, solo perché non ha funzionato nel tuo caso non significa che non funzioni in tutti i tipi di Linux. Vorrei che notassi anche che il backtick `è diverso da una singola citazione '. Immagino che sia per questo che non ha funzionato per te. Funziona assolutamente in tutte le versioni di Ubuntu almeno dal 10.04. E poiché Ubuntu si basa su Debian funzionerà anche su questo. Potrebbe essere più costruttivo dire "Non funziona su ...." piuttosto in basso voto e fare una dichiarazione generale. Linux è un termine generico, non è una versione. Ma in realtà penso che tu l'abbia scritto male. Riprova.
Matt H

1
Ho provato di nuovo sul mio computer di casa e non funziona neanche lì. So come funzionano i backtick. Quindi ho provato su Ubuntu 13.10 e Kubuntu 13.10. Potrebbe essere che sto usando un locale diverso? L'output di date --date "now + 60 seconds"per me è il 22 febbraio 2014 21:25:03 CET e se lo uso insieme allo spegnimento, stampa "timevalue non valido" (tradotto in inglese). Quindi la tua affermazione che la versione che hai scritto funziona assolutamente in tutte le versioni di Ubuntu è semplicemente sbagliata. Se mi specificare il formato fino ad oggi funziona, però, in questo modo: date --date "now +60 seconds" +%H:%M.
Zitrax,

Ho provato a passare alla lingua inglese, ma non ha funzionato neanche. Quindi non sono sicuro del perché funzioni per te.
Zitrax,

Deve essere la tua versione del comando shutdown. Sembra che la versione fornita con Ubuntu possa essere diversa. È stato scritto da Scott Remnant di Conanical. Deve essere che accetta un intervallo più ampio di valori di input data. Funziona per me e per altri 3 che hanno votato.
Matt H
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.