Esiste un modo più rapido per arrestare il sistema?


20

O è shutdown -h nowil più veloce che può ottenere?

Cerco alcune scale di sistema o simili che consentano di saltare un sacco di cose fatte prima dell'arresto (in particolare per preoccuparsi dei processi in esecuzione).

Nel migliore dei casi vorrei una soluzione correlata al kernel, ignorando il init-middleware (come systemdo upstart).

I rischi legati all'uccisione diretta di tutti i servizi come tazze / apache / pulseaudio ecc ... Non mi interessa ...

osservazione: la soluzione dovrebbe essere software-vice. Premere i pulsanti sul dispositivo non è quello che cerco.


8
"I rischi legati all'uccisione diretta di tutti i servizi come tazze / apache / pulseaudio ecc ... Non mi importerebbe ...." -> Sei sicuro? Lasciare software complessi in uno stato incoerente può portare a brutte sorprese la prossima volta che viene utilizzato. Forse dovresti considerare di disabilitare i servizi che non usi molto (es. Tazze, apache); puoi sempre avviare e interrompere queste cose manualmente quando vuoi usarle.
Riccioli d'oro,

Il metodo che cerco è per il momento in cui voglio evitare che le persone abbiano accesso al mio PC. Qualsiasi ritardo nello spegnimento consente malizia. Preferisco perdere i dati e poi esporli.
umanità e

2
Visita anche questo
Pandya,

8
C'è un'idea. Inizia a risparmiare denaro per alcuni nuovi hardware però.
John WH Smith,

sudo shutdown -P 0 Lo uso e avvia subito il processo di spegnimento, indipendentemente dalle app aperte
gkmohit,

Risposte:


30

Non è molto più veloce dell'utilizzo della funzionalità System Request (SysRq) e quindi l'attivazione immediata reboot.

Questa è una combinazione chiave compresa dal kernel.

Abilita SysRq:

echo 1 > /proc/sys/kernel/sysrq

Ora, invialo al riavvio.

echo b > /proc/sysrq-trigger

b - Riavvia immediatamente il sistema, senza smontare o sincronizzare i filesystem.

Nota:

Sebbene questo sia un reboot, si comporterà come se l'alimentazione fosse stata interrotta, il che non è raccomandato.

Se si desidera synce umounti filesystem prima di allora, utilizzare:

echo s > /proc/sysrq-trigger
echo u > /proc/sysrq-trigger

o se vuoi solo spegnere il sistema allora:

echo o > /proc/sysrq-trigger

Combinazioni di tasti magici

Ci sono anche combinazioni di tasti da usare che sono interpretate dal kernel:

Alt+ SysRq / Print Screen+Command Key

Tasti di comando:

R- Riprendi il controllo della tastiera da X.
E- Invia SIGTERM a tutti i processi, consentendo loro di terminare con grazia.
I- Invia SIGKILL a tutti i processi, costringendoli a terminare immediatamente.
S- Svuota i dati sul disco.
U- Rimonta tutti i filesystem in sola lettura.
B- Riavvia.

Citando dal Magic SysRq Key Wiki :

Un uso comune della chiave magica SysRq è di eseguire un riavvio sicuro di un computer Linux che altrimenti si è bloccato.

  1. Tenere premuti i tasti Alte SysRq(Stampa schermo).
  2. Tenendoli premuti, digita i seguenti tasti in ordine, a distanza di alcuni secondi: REISUB .
  3. Il computer dovrebbe riavviarsi.

Un modo per ricordare questi sono:

" R eboot E ven I f S istema U tterly B roken" o semplicemente la parola " affollate " leggi all'indietro.

Riferimenti

Magic SysRq Wiki chiave
Fedora SysRq


11
È importante notare che un sistema pulito può richiedere anche meno di 2 secondi per spegnersi. Quando chiamo poweroffsulla mia macchina Arch, non riesco nemmeno a vedere il registro di spegnimento stampato sullo schermo ...
John WH Smith,

Prima della seconda eco, dovresti eseguire sync( linux.about.com/library/cmd/blcmdl8_sync.htm ), per assicurarti che i buffer vengano scritti sul disco, inclusi i superblocchi.
Arcege,

tu suggerisci di bnon essere echod o. B è meglio?
umanità e

Dipende da cosa intendi meglio. Mentre l' bopzione è molto veloce, non synci dischi, il che non è l'ideale, ci sono molte opzioni che offrono modi per ridurre i tempi di spegnimento, alcuni più estremi di altri. C'è anche panicun'opzione. Leggi la wiki, prova ed errore per vedere cosa soddisfa meglio le tue esigenze.
geedoubleya,

Bene sul mio sistema echo o /proc/sysrq-triggerrovinato crea un blocco. Il sistema rimane acceso. In effetti il bsistema è sparito. Eppure si riavvia, il che significa che la RAM può essere mantenuta, che è una vulnerabilità che mi piacerebbe l' bopzione con il sistema spento alla fine. Purtroppo questo non funziona con l' oopzione nel mio sistema. Grazie per il suggerimento a te e anche a @Pandya
umanità

8

L'approccio cattivo è shutdown -h -n now.

Si noti che ciò non eseguirà alcuna pulizia, quindi i file system potrebbero risultare incoerenti, i database si rompono, ecc., Ma arrestano il sistema molto velocemente.


1
grazie, sembra interessante: questa -nopzione è documentata e è ancora nella versione attuale di spegnimento?
umanità e

1
Sì, quello è standard. Dice direttamente al kernel di eliminare tutto. Questo comando viene normalmente utilizzato dall'ultimo script di spegnimento, quando l'arresto normale è stato completato.
Simon Richter,

7
Ma non posso sottolineare abbastanza che questo probabilmente causerà effetti negativi, poiché è in gran parte equivalente a staccare la spina.
Simon Richter,

Meravigliosamente semplice ed efficace. Questa opzione -n ​​è esattamente quello che stavo cercando. Grazie mille per aver risposto alla domanda. Non sai quanto sia frustrante fare una domanda e sentire i barbieri che ti dicono perché la tua domanda è sbagliata invece di rispondere. Vorrei votare questa risposta cinquanta volte se potessi. GRAZIE.
Joshua Pech

4

Alcune distro offrono un poweroffcomando più semplice di shutdown.

Usandolo con:

poweroff -f

eseguirà una sincronizzazione del disco e quindi si spegnerà. Questo è un buon compromesso tra l'essere molto più veloci mentre si esegue comunque l'arresto minimo per garantire che i filesystem non siano danneggiati.


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.