Comando per sapere se il mio computer si spegnerà o no?


0

Sto inviando un comando di riavvio e spegnimento a un computer BSD gratuito. Tuttavia, voglio verificare che quel computer si spenga o si riavvii davvero (invio questo comando da un computer di riavvio e voglio essere sicuro che se il mio comando verrà eseguito) Non voglio eseguire il ping o ecc., C'è qualche comando per impararlo?

EDIT 1: Penso che dovrei essere più chiaro sulla mia domanda. Dalla mia applicazione java server invio uno di questi comandi:

reboot // or any other command to reboot
shutdown -p now

Chiamo quei comandi in un altro programma Java sul lato client. Pensiamo allo scenario di riavvio. Dopo aver inviato il comando di riavvio dal lato server, desidero controllare il riavvio del client o meno. Se eseguo il ping dopo l'invio di quel comando di riavvio, la macchina Free BSD client potrebbe essere ancora attiva. Tuttavia, può riavviarsi dopo un po 'di tempo. D'altra parte, dopo che ho inviato il comando di riavvio, qualcosa potrebbe non funzionare e la comunicazione si interrompe e il client potrebbe non ricevere quel comando di riavvio.

Come posso gestire questo problema (non voglio una soluzione con il lato Java) Free BSD mantiene i segnali di riavvio o spegnimento da qualche parte (per sapere che la macchina verrà riavviata o arrestata) e posso eseguire una query che la macchina programmata si riavvierà automaticamente o spegnimento immediato?

EDIT 2: Il server invia uno di questi comandi al client (il mio server e client sono codificati su Java) Se eseguo il ping dopo l'invio, ovvero comando di spegnimento, forse la macchina si spegne ma è ancora viva (si spegnerà forse dopo 2 secondi più tardi). Se posso interrogare il mio client se ha ricevuto un comando di spegnimento (o riavvio) anche se è ancora vivo Accetterò che OK si spegnerà (o riavvia) Se non riesco a ottenere una risposta alla mia richiesta al client significa che non è vivo , quindi accetterò che sia chiuso (o riavviato). Come posso interrogare la mia macchina in quel modo?


1
Non sono sicuro di aver capito la domanda. Stai inviando un comando di riavvio al server FreeBSD e un comando di arresto (con arresto in modalità utente singolo, riavvio o opzioni di spegnimento). E ti chiedi quale di questi accadrà?
Hennes,

@Hennes puoi controllare la mia modifica?
Kamaci,

Risposte:


3

A meno che non ci si trovi su un vecchio sistema x86 con un BIOS difettoso o un sistema non x86 con un qualche tipo di firmware difettoso, si rebootdovrebbe sempre riavviare, supponendo che non si abbia un problema con i dispositivi sospesi o con i driver / moduli del kernel difettosi.

poweroffè leggermente diverso. Ciò richiede il supporto ACPI su macchine x86. Tuttavia, dovrebbe essere solo un problema sull'hardware x86 precedente. Ho una doppia scheda madre Pentium-II da 533Mhz che ha un problema per cui se ACPI è abilitato, è visibile solo 1 CPU. La disabilitazione di ACPI consente di utilizzare entrambe le CPU. Tuttavia, poiché ACPI non è abilitato, poweroffnon spegnerà effettivamente il sistema, ma semplicemente lo arresterà. Credo che questo sistema sia dalla metà alla fine degli anni '90. Non riesco a immaginare che sia un problema su qualcosa di abbastanza recente.

Su macchine non x86 probabilmente non spegnerà un sistema a meno che tu non abbia un supporto kernel specifico per quella CPU o scheda.

E ovviamente se il kernel attualmente in esecuzione non ha il supporto ACPI, è probabile che il kernel non possa arrestare la macchina.

Quindi probabilmente il meglio che puoi fare è controllare il supporto ACPI.


puoi controllare la mia modifica?
Kamaci,

0

Oltre al ping, potresti eseguire un demone (come sshd- cosa che suppongo tu stia facendo, poiché ti stai collegando da remoto) sulla macchina e, se non riesce a connettersi, la macchina è (presumibilmente) spenta.


puoi controllare la mia modifica?
Kamaci,

0

OK. Ora capisco come segue:

Un'applicazione java su un client invia il comando rebooto shutdown -p now. Quindi la connessione potrebbe essere interrotta e ti chiedi se il comando è ancora completo.

La risposta per l'arresto è semplice: Sì, completa. Ho usato spesso lo spegnimento con qualche ora di anticipo, quindi mi sono disconnesso e il server si è spento correttamente all'ora specificata.

Lo stesso dovrebbe accadere con il shutdown -rriavvio.

Non so cosa succede /sbin/reboot. Non l'ho mai usato. Ho il sospetto che sarà ancora completo, ma non l'ho mai provato.


Il server invia uno di questi comandi al client (il mio server e client sono codificati su Java) Se eseguo il ping dopo l'invio, ad es. Comando di spegnimento, forse la macchina si spegne ma è ancora viva (si spegnerà forse dopo 2 secondi più tardi). Se riesco a interrogare il mio il client ha ricevuto un comando di arresto (o riavvio) anche se è ancora attivo Accetterò che OK si spegnerà (o riavvia) Se non riesco a ottenere una risposta alla mia richiesta al client significa che non è vivo, quindi accetterà che sia chiuso (o riavviato). Come posso interrogare la mia macchina in quel modo?
Kamaci,

Prova questo su una macchina di prova: shutdown -p +60 Testing. Ciò dovrebbe arrestare il server in 60 minuti. Ora riprova. Se la memoria serve, viene visualizzato il messaggio che l'arresto è già in esecuzione (confermando così che è stato ricevuto il comando precedente).
Hennes,

Come posso imparare la memoria mi serve un messaggio che sta eseguendo il messaggio di spegnimento?
Kamaci,

"Se la mia memoria mi serve" è un'espressione che significa "Se me lo ricordo correttamente". - Per rilevarlo: accedi a un computer e prova shutdown -p +60 Testingdue volte il comando. Guarda la differenza nell'output del primo e del secondo comando.
Hennes,

Grazie per la spiegazione per quell'espressione :) Puoi darmi l'output perché sto eseguendo un computer Win7 e lo testerò su un FreeBSD più tardi?
Kamaci,

0

A bsd gratuito crea un file / var / run / nologin . Lo controllo per capire se uno di quei segnali viene ricevuto o meno.

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.