Como desligar o computador após a conclusão de uma tarefa?

8

Eu geralmente começo um download antes de ir para a escola.
Qual comando devo usar para fazer automaticamente as salvaguardas necessárias e desligar o computador depois que uma tarefa específica tiver sido concluída?
(Diga, depois de instalar as atualizações, ou depois de baixar um arquivo grande.)

Eu também fiz um cross-posted em unix.stackexchange .

    
por El Burro 30.11.2010 / 15:34

9 respostas

8

Para fazer uma vez para permitir que você desligue a máquina sem uma senha:

Abra uma linha de comando e digite:

sudo visudo 

No arquivo que é aberto, adicione a seguinte linha no final:

yourusername ALL=NOPASSWD: /sbin/halt

Em seguida, saia do editor e proteja-o ( Ctrl + X ).

Agora você pode desligar seu computador pela linha de comando, por exemplo depois de baixar algo:

wget UrlOfTheFileYouWantToDownload && sudo halt
    
por AK76 30.11.2010 / 16:12
8

Sei que isso não responde exatamente à sua pergunta, mas também é possível fazer com base no tempo, ou seja, se você acha que o download será concluído em duas horas, basta emitir o comando:

shutdown -h +120
    
por binW 01.12.2010 / 14:18
3

Para encerrar após a atualização, você pode usar este script python: link

Para desligar após o download, eu uso este comando:

wget http://somehwere.com/path/to/some.file && halt
    
por aneeshep 30.11.2010 / 16:09
3

Outras respostas estão corretas, mas faltam alguma coisa:

wget UrlOfTheFileYouWantToDownload ; sudo halt

vs

wget UrlOfTheFileYouWantToDownload && sudo halt

O segundo somente desligará o computador se wget retornar com sucesso. O primeiro será interrompido se wget retornar com sucesso ou falhar.

    
por David Oneill 01.12.2010 / 17:13
2

você pode usar os gerenciadores de download ou clientes de torrent para desligar o PC depois de feito ou suponha que você está desfragmentando o disco que você pode clicar em desligar depois de feito o que está disponível na maioria dos softwares

    
por FOSS DIVERSER 30.11.2010 / 15:43
2

Eu acho que depende muito de como você fez o seu 'download'.

Se você estiver falando sobre uma atualização do apt-get, atualize a sequência e, como root, agrupe seus comandos usando o & amp; & amp; (a sequência só continua se não houver erros)

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

Se você estiver falando sobre um download (por exemplo, usando o wget) [novamente, agrupe os comandos usando o & amp; & amp; notação, garantindo que os comandos executem em ordem somente se o comando anterior foi bem sucedido]

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

Se o seu download foi feito por um cliente gráfico (gui), então dependerá dos mecanismos desse cliente para executar scripts após um download bem-sucedido.

    
por finley 30.11.2010 / 16:11
1

Eu pessoalmente achei que era mais fácil usar o gedit para configurar o original

yourusername ALL=NOPASSWD: /sbin/halt    

desde que sudo visudo foi confuso para mim e não mostrou claramente a última linha

Então eu usei

sudo -H gedit /etc/sudoers

depois acabou com uma página clara (para mim)

# 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

Pensei em mencionar isso caso alguém estivesse um pouco confuso demais

    
por shan 24.08.2011 / 09:43
1

Em vez de alterar as permissões no desligamento, você pode fazer o seguinte:

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

O que isto faz é executar um prompt bash como root que executa os itens na lista de aspas simples e depois sai. O bônus desse método é que o Ubuntu esquecerá sua autenticação sudo inicial após algum período (dependendo do período de tempo limite definido - 15 minutos por padrão) e alguém que estiver usando sua máquina só poderá parar o comando atual, não executar um novo . Além disso, para todos que dizem usar su , tente:

sudo -s
    
por Calcipher 01.12.2010 / 17:45
0

Eu não acho que você possa fazer isso ... Não há como saber quando um aplicativo específico terminou sua tarefa.

Eu costumava fazer sudo su; sleep 3600; halt;

    
por Quamis 30.11.2010 / 15:38