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


8

Normalmente, começo um download antes de ir para a escola.
Qual comando devo usar para fazer automaticamente os salvamentos necessários e desligar o computador após a conclusão de uma tarefa específica?
(Diga, depois de instalar as atualizações ou depois de baixar um arquivo grande.)

Também publiquei isso em unix.stackexchange .


11
Se você baixar torrents, alguns deles terão a opção de desligar após a conclusão. verifique se a conclusão significa 100% e não semeia. E se você estiver fazendo isso através da linha de comando, basta acrescentar uma && parada no final do comando para parar automaticamente o PC. o && significa executar depois.
theTuxRacer

Quase todas as respostas estão corretas, imho. Quanto mais detalhes você der sobre o tipo de transferência e programa que você usa mais podemos ser precisos :)
Pitto

Penso que a resposta baseada no processo no seu post é uma das mais agradáveis ​​e flexíveis que já vi. unix.stackexchange.com/a/65060/21070 Você pode usar o `ps -elf | grep <somthing_related_to_task> para identificar o PID que expirará no final do processo.
TafT

Respostas:


8

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

shutdown -h +120

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 abre, adicione a seguinte linha no final:

yourusername ALL=NOPASSWD: /sbin/halt

Então saia do editor e proteja-o ( Ctrl+ X).

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

wget UrlOfTheFileYouWantToDownload && sudo halt

4
Para garantir que o wget retorne sem erro, substitua ";" com "&&".
David Rivers


3

Outras respostas estão corretas, mas falta algo:

wget UrlOfTheFileYouWantToDownload ; sudo halt

vs

wget UrlOfTheFileYouWantToDownload && sudo halt

O segundo irá única desligar o computador se wgetretorna com êxito. O primeiro será interrompido se wgetretornar com êxito ou falhar.


2

você pode usar os gerenciadores de download ou clientes de torrent para desligar o PC após concluir ou, supondo que você esteja desfragmentando o disco, clique em desligar após concluir, disponível na maioria dos softwares


2

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

Se você está falando de uma atualização do apt-get, atualize a sequência, como root, você agrupa seus comandos usando o && (a sequência só continua se não houver erros)

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

Se você está falando sobre um download (por exemplo, usando o wget) [novamente, agrupe os comandos usando a notação &&, garantindo que os comandos sejam executados em ordem somente se o comando anterior tiver êxito]

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), isso dependeria dos mecanismos desse cliente para executar scripts após um download bem-sucedido.


2
Esses comandos não funcionarão porque sudo su -inicia um novo shell e os comandos após o ponto-e-vírgula não são executados até que o novo shell seja encerrado.
Loevborg

Comentário justo. modificaram as instruções para indicar que são uma sequência de comandos separada.
Finley

1

Pessoalmente, achei mais fácil usar o gedit para configurar o original

yourusername ALL=NOPASSWD: /sbin/halt    

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

Então eu usei

sudo -H gedit /etc/sudoers

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

Só pensei em mencionar que no caso de alguém estar um pouco confuso também


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 isso faz é executar um prompt do bash como root que executa os itens na lista de aspas simples e depois fecha. O bônus desse método é que o Ubuntu esquecerá sua sudoautenticação inicial após algum período (dependendo do período de tempo limite definido - 15 minutos por padrão) e alguém que se deparar com sua máquina poderá parar o comando atual e não executar um novo. Além disso, para todos que desejam usar su, tente:

sudo -s

e se a rede ficar inativa por um curto período de tempo e o apt-get falhar no seu trabalho?
Quamis

11
Eu diria que você ainda quer desligar. Se algum estágio dos comandos em -c falhar, os outros continuarão como eu usei um ponto-e-vírgula em vez do && (qualquer comando encadeado com && funcionará apenas se cada um tiver êxito por sua vez).
Calcipher

0

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

eu costumava fazer sudo su; sleep 3600; halt;


por que a votação para baixo?
Quamis

Alguém provavelmente discordou da parte "não há como saber"?
belacqua 23/08/2012
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.