¿Cómo apagar la computadora después de completar una tarea?

8

Generalmente comienzo una descarga antes de ir a la escuela.
¿Qué comando debo usar para realizar automáticamente los guardados necesarios y apagar la computadora después de que se haya completado una tarea en particular?
(Por ejemplo, después de instalar las actualizaciones o después de descargar un archivo grande).

También he publicado esto en unix.stackexchange .

El burro
fuente
1
Si descarga torrents, algunos de ellos tienen la opción de apagarse una vez finalizado. asegúrese de que completar significa 100% y no sembrar. Y si lo está haciendo a través de la línea de comando, simplemente agregue un && detener al final del comando para detener automáticamente la PC. el && significa ejecutar después.
theTuxRacer
Casi todas las respuestas son correctas, en mi humilde opinión. Cuantos más detalles dan sobre el tipo de descarga y el programa que se utiliza más podemos ser precisos :)
Pitto
Creo que la respuesta basada en el proceso en su publicación cruzada es una de las mejores y más flexibles que he visto. unix.stackexchange.com/a/65060/21070 Es posible que pueda usar `ps -elf | grep <somthing_related_to_task> para identificar el PID que caducará al final del proceso.
TafT

Respuestas:

8

Sé que esto no responde exactamente a su pregunta, pero también puede hacerlo en función del tiempo, es decir, si cree que su descarga se completará en 2 horas, simplemente puede ejecutar el comando:

shutdown -h +120
binW
fuente
8

Para hacerlo una vez y permitirle apagar la máquina sin contraseña:

Abra una línea de comando y escriba:

sudo visudo 

En el archivo que se abre, agregue la siguiente línea al final:

yourusername ALL=NOPASSWD: /sbin/halt

Luego salga del editor y protéjalo ( Ctrl+ X).

Ahora puede apagar su computadora desde la línea de comandos, por ejemplo, después de descargar algo:

wget UrlOfTheFileYouWantToDownload && sudo halt
AK76
fuente
44
Para asegurarse de que wget regresó sin un error, reemplace ";" con "&&".
David Rivers el
3

Para cerrar después de la actualización, puede usar este script de Python: http://kotbcorp.blogspot.com/2009/06/shutdown-after-update-in-ubuntu.html

Para cerrar después de la descarga, uso este comando:

wget http://somehwere.com/path/to/some.file && halt
aneeshep
fuente
2
Recuerde que haltrequiere privilegios de superusuario, por lo que debe ejecutar sudo -santes de ingresar los comandos.
loevborg
3

Otras respuestas son correctas, pero falta algo:

wget UrlOfTheFileYouWantToDownload ; sudo halt

vs

wget UrlOfTheFileYouWantToDownload && sudo halt

El segundo solo apagará la computadora si wgetregresa con éxito. La primera se detendrá si la wgetdevolución se realiza correctamente o falla.

David Oneill
fuente
2

puede usar los gestores de descargas o clientes de torrent para apagar la PC después de terminar o suponer que está desfragmentando el disco, puede hacer clic en apagar después de hacerlo, que está disponible en la mayoría de los softwares

DIVERSADOR DE FOSS
fuente
2

Supongo que depende mucho de cómo hiciste tu 'descarga'.

Si está hablando de una actualización de apt-get, secuencia de actualización, como root, encadena sus comandos juntos usando && (la secuencia solo continúa si no hubo errores)

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

Si está hablando de una descarga (por ejemplo, usando wget) [nuevamente, encadene los comandos usando la notación &&, asegurándose de que los comandos se ejecuten en orden solo si el comando anterior fue exitoso]

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

Si su descarga fue realizada por un cliente gráfico (gui), entonces dependería de los mecanismos de ese cliente para ejecutar scripts después de una descarga exitosa.

finley
fuente
2
Esos comandos no funcionarán porque sudo su -inicia un nuevo shell y los comandos después del punto y coma no se ejecutan hasta que finaliza el nuevo shell.
loevborg
Comentario justo han modificado las instrucciones para indicar que son una secuencia separada de comandos.
finley
1

Personalmente descubrí que era más fácil usar gedit para configurar el original

yourusername ALL=NOPASSWD: /sbin/halt    

ya que sudo visudoera confuso para mí y no mostraba la última línea claramente

Entonces solía

sudo -H gedit /etc/sudoers

luego terminó con una página clara (para mí)

# 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

Solo pensé en mencionar que en caso de que alguien más también estuviera un poco confundido

shan
fuente
1

En lugar de cambiar los permisos al apagar, puede hacer lo siguiente:

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

Lo que esto hace es ejecutar un indicador bash como root que ejecuta los elementos en la lista de comillas simples y luego se cierra. La ventaja de este método es que Ubuntu olvidará su sudoautenticación inicial después de un período (dependiendo del período de tiempo de espera establecido, 15 minutos por defecto) y alguien que se encuentre con su máquina solo podría detener el comando actual, no ejecutar uno nuevo. Además, para todos los que digan usar su, intente:

sudo -s
Calcipher
fuente
¿Qué pasa si la red se cae por un corto tiempo y apt-get falla haciendo su trabajo?
Quamis
1
Supongo que aún querría cerrar. Si alguna etapa de los comandos en -c falla, los otros continuarán ya que usé un punto y coma en lugar de && (cualquier comando encadenado con && solo funcionará si cada uno tiene éxito a su vez).
Calcipher
0

No creo que puedas hacer eso ... No hay forma de saber cuándo una aplicación específica terminó su tarea.

lo solía hacer sudo su; sleep 3600; halt;

Quamis
fuente
¿Por qué el voto abajo?
Quamis
¿Alguien probablemente no estuvo de acuerdo con la parte de "no hay forma de saber"?
belacqua