Come spegnere il computer dopo che un'attività è stata completata?


8

Di solito avvio un download prima di andare a scuola.
Quale comando devo usare per effettuare automaticamente i salvataggi necessari e spegnere il computer dopo che una determinata attività è stata completata?
(Dire, dopo aver installato gli aggiornamenti o dopo aver scaricato un file di grandi dimensioni.)

Ho anche inviato questo post su unix.stackexchange .


1
Se scarichi torrent, alcuni di essi hanno un'opzione per l'arresto dopo il completamento. assicurati che completamento significhi 100% e non semina. E se lo stai facendo attraverso la riga di comando, aggiungi semplicemente un &&sit alla fine del comando per arrestare automaticamente il PC. && significa eseguire dopo.
theTuxRacer

Quasi tutte le risposte sono corrette, imho. Più dettagli fornisci sul tipo di download e programma che usi, più possiamo essere precisi :)
Pitto

Penso che la risposta basata sul processo nel tuo cross-post sia una delle più belle e flessibili che abbia mai visto. unix.stackexchange.com/a/65060/21070 Potresti essere in grado di usare `ps -elf | grep <somthing_related_to_task> per identificare il PID che scadrà alla fine del processo.
TafT

Risposte:


8

So che questo non risponde esattamente alla tua domanda ma puoi anche farlo in base al tempo, ad esempio se pensi che il download verrà completato in 2 ore puoi semplicemente emettere il comando:

shutdown -h +120

8

Fare una volta per consentire di spegnere la macchina senza una password:

Apri una riga di comando e digita:

sudo visudo 

Nel file che si apre aggiungere la seguente riga alla fine:

yourusername ALL=NOPASSWD: /sbin/halt

Quindi chiudere l'editor e salvarlo ( Ctrl+ X).

Ora puoi spegnere il computer dalla riga di comando, ad esempio dopo aver scaricato qualcosa:

wget UrlOfTheFileYouWantToDownload && sudo halt

4
Per assicurarti che wget sia tornato senza errori, sostituisci ";" con "&&".
David Rivers,


3

Altre risposte sono corrette, ma manca qualcosa:

wget UrlOfTheFileYouWantToDownload ; sudo halt

vs

wget UrlOfTheFileYouWantToDownload && sudo halt

Il secondo sarà solo spegnere il computer se wgetritorna con successo. Il primo verrà arrestato se wgetrestituisce correttamente o fallisce.


2

puoi usare i download manager o i client torrent per spegnere il pc dopo aver fatto o supponiamo che stia deframmentando il disco su cui puoi fare clic su shutdown dopo aver fatto che è disponibile nella maggior parte dei software


2

Immagino che dipenda molto da come hai fatto il tuo "download".

Se stai parlando di un aggiornamento apt-get, aggiorna la sequenza, come root stringi i tuoi comandi insieme usando && (la sequenza continua solo se non ci sono errori)

sudo su -
apt-get update && apt-get upgrade && shutdown -h now

Se stai parlando di un download (ad esempio usando wget) [di nuovo, stringi i comandi insieme usando la notazione &&, assicurandoti che i comandi vengano eseguiti solo se il comando precedente ha avuto successo]

sudo su -
wget -t0 -c http://somedownloadsite/path/file.foo && shutdown -h now

Se il download è stato eseguito da un client grafico (gui), dipenderebbe dai meccanismi di quel client per l'esecuzione degli script dopo un download riuscito.


2
Questi comandi non funzioneranno perché sudo su -avvia una nuova shell e i comandi dopo il punto e virgola non vengono eseguiti fino al termine della nuova shell.
loevborg,

Commento equo. hanno modificato le istruzioni per indicare che si tratta di una sequenza separata di comandi.
Finley,

1

Personalmente ho scoperto che era più facile usare gedit per configurare l'originale

yourusername ALL=NOPASSWD: /sbin/halt    

poiché sudo visudomi confondeva e non mostrava chiaramente l'ultima riga

Quindi ho usato

sudo -H gedit /etc/sudoers

poi ho finito con una pagina chiara (per me)

# User privilege specification
root    ALL=(ALL:ALL) ALL


# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d
shantiq ALL=NOPASSWD: /sbin/halt

Ho pensato di menzionare che nel caso anche qualcun altro fosse un po 'confuso


1

Invece di modificare le autorizzazioni allo spegnimento, è possibile effettuare le seguenti operazioni:

sudo bash -c 'apt-get update; apt-get dist-upgrade; shutdown -h now'

Quello che fa è eseguire un prompt di bash come root che esegue gli elementi nel singolo elenco tra virgolette e quindi si chiude. Il vantaggio di questo metodo è che Ubuntu dimenticherà la tua sudoautenticazione iniziale dopo un certo periodo (a seconda del periodo di timeout impostato - 15 minuti per impostazione predefinita) e qualcuno che incontra il tuo computer potrebbe solo interrompere il comando corrente, non eseguirne uno nuovo. Inoltre, per tutti coloro che dicono di usare su, prova:

sudo -s

cosa succede se la rete si arresta per un breve periodo e apt-get non riesce a fare il suo lavoro?
Quamis,

1
Suppongo che vorresti ancora chiudere. Se una qualsiasi fase dei comandi in -c fallisce, gli altri continueranno mentre io ho usato un punto e virgola invece di && (tutti i comandi concatenati con && funzioneranno solo se ognuno avrà successo a sua volta).
Calcipher

0

Non penso che tu possa farlo ... Non c'è modo di sapere quando un'applicazione specifica ha terminato la sua attività.

ero solito fare sudo su; sleep 3600; halt;


perché il voto verso il basso?
Quamis,

Qualcuno probabilmente non è d'accordo con la parte "non c'è modo di conoscere"?
belacqua,
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.