Perché l'esecuzione di "sudo shutdown now" non si arresta?


87

Quando emetto quanto segue:

sudo shutdown now

..il mio server Ubuntu 14.04 appena commissionato non si spegne. Si interrompe con il seguente messaggio:

* Stopping System V runlevel compatibility
Give root password for maintenance:
(or type Control-D to continue):

Se digito la password di root, la macchina si trova semplicemente al prompt della shell.



5
Elettori vicini: questo non è un duplicato. Mentre le domande sono simili, questa è una domanda su un comando specifico, l'altra un modo generale di spegnere la macchina dalla riga di comando.
Seth,

Risposte:


138

Tradizionalmente, il comando sudo shutdown nowti porterà al runlevel 1 (modalità di recupero); questo accadrà sia per Upstart che per SysV init. Per ottenere ciò che desideri, ad esempio per arrestare correttamente il computer, devi -hpassare a shutdown.

Una cosa da notare qui è che haltchiuderà tutti i processi, spegnerà le CPU e restituirà il controllo a un monitor ROM della scheda madre che richiede all'utente di premere il pulsante di accensione per spegnere l'alimentazione, mentre poweroffdopo aver spento le CPU spegnerà semplicemente l'alimentazione con conseguente spegnimento corretto.

Il -hcambio di shutdownvolontà halto poweroffdel computer, la decisione verrà presa dal sistema anche se in Ubuntu ho visto che sarebbe normalmente poweroffla macchina. Per essere sicuri, puoi usare l' -Pinterruttore con shutdownal poweroffcomputer.

Per riassumere, ecco i comandi disponibili per poweroff( non halt ) un computer:

sudo shutdown -h now
sudo shutdown -P now
sudo poweroff
sudo halt -p
sudo init 0

I comandi poweroffe haltsostanzialmente invocano shutdown(tranne per poweroff -f). sudo poweroffe sudo halt -psono esattamente come sudo shutdown -P now. Il comando sudo init 0ti porterà al runlevel 0 ( arresto ).

E se volessi chiudere forzatamente, cioè non vuoi aspettare che i processi si chiudano normalmente? In tal caso è possibile utilizzare:

sudo poweroff -f

Questo non userà shutdown. Piuttosto, invocherà la reboot(2)chiamata di sistema (utilizzata per il riavvio, lo spegnimento e l'arresto) per spegnere immediatamente il computer.


2
Oppure, combina lo spegnimento "adesso" con "poweroff":sudo shutdown -P now
david6

3
Cosa intendi con "spegnimento forzato"? Secondo una pagina man , l' -fopzione salta semplicemente fsckal riavvio. E secondo la pagina man di Ubuntu, questa opzione non esiste affatto.
Ruslan,

1
@Ruslan: forse confondendolo con halt -f/ poweroff -f, che ignora init e dice direttamente al kernel di interrompere l'alimentazione. Questo è forte.
Grawity il

1
Il mio laptop ti ringrazia! In realtà ero appeso a questo e ho sempre usato il pulsante di accensione, ma ora lo so! L'arresto stava mantenendo acceso il mio sistema, ma lo spegnimento effettivamente lo spegne. Grazie molto! :-)
Terrance

1
@RGG Consiglierei di eseguire syncprima di questo comando, poiché questo comando ignora tutto ciò che potrebbe essere ancora nella cache. syncforzerà le scritture memorizzate nella cache sul disco, quindi è possibile spegnerlo.
Terrance,

15

Sono abbastanza sicuro che il comando corretto debba contenere l'opzione "-h" (halt). Prova questo:

sudo shutdown -h now

6

È un'eredità dei tempi in cui la macchina fisica non poteva spegnersi da sola. Ad esempio, il comando halt sudo halttermina tutti i programmi e scarica quasi tutto dalla RAM, pronto per essere spento. Tuttavia, se esegui sudo halt -p, farà tutto ciò, quindi segnala al sistema di spegnersi o, nel caso del shutdowncomando, hai bisogno -adell'opzione, credo, anche se lo uso personalmente halt.


Cosa succede se spengo sempre il PC con questo comando?
Nullpointer il

-1

Ho sempre usato quanto segue

sudo shutdown -a now

o riavviare immediatamente dopo l'arresto

sudo shutdown -r now

Guardando l'opzione di aiuto per lo spegnimento non elenca -a come un comando appropriato, ma avrei potuto giurare molto tempo fa -a è stata interrotta o qualcosa del genere. Comunque ho continuato a usarlo e ha funzionato in tutti questi anni, ma sembra che lo spegnimento -h ora sia l'opzione corretta.


1
Forse stai pensando al comando di Windows shutdown /a, che interrompe un arresto (equivalente a shutdown -cin Ubuntu).
Delta,

@deltab Sì, deve essere quello a cui sto pensando allora. Strano che lo spegnimento -a funzioni anche per me.
NPIC,
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.