Generalmente comienzo una descarga antes de ir a la escuela.
¿Qué comando debo usar para hacer automáticamente los guardados necesarios y apagar la computadora después de que se haya completado una tarea en particular?
(Digamos, después de instalar las actualizaciones o después de descargar un archivo grande).
También he publicado en askubunt .
Depende de que empezaste la tarea. Si se trata de una herramienta de línea de comandos, simplemente puede ejecutar halt
o shutdown -h now
:
wget http://..../somelargefile; halt
- halt
se ejecutará después de wget
wget http://..../somelargefile && halt
- halt
se ejecutará si wget
no devuelve errores
wget http://..../somelargefile || halt
- halt
se ejecutará si wget
devuelve errores
Una alternativa a esto es usar kshutdown
: en esta aplicación puede especificar qué acción se debe hacer (reiniciar/apagar/hibernar/etc. o ejecución de comando) y cuándo (después de un tiempo o cuando sale de otra aplicación). Si desea utilizar esta herramienta, debe elegir el proceso correcto: algunas utilidades de actualización inician pocos subprocesos.
Cada proceso tiene un directorio nombrado de acuerdo con su id de proceso (pid) en el sistema de archivos proc
. Por lo tanto, puede esperar la finalización de un proceso específico comprobando si su directorio existe repetidamente.
Puede usar esto para realizar un apagado del sistema después de la finalización del proceso de esta manera (reemplace 2296 por el pid para esperar):
su -c 'while [[ -d /proc/2296 ]]; do sleep 1; done; poweroff'
Ventajas:
Sudo
- solicitud de contraseña).Desventajas
Puedes usar el &&
y ||
operadores para encadenar comandos juntos. Por ejemplo:
apt-get update && sleep 2 && init 0
que realizará una actualización del sistema usando aptitude, esperará 2 segundos e irá al nivel de ejecución 0, dependiendo de su sistema, esto puede o no apagar el hardware.
Para hablar con una o más operaciones después de una operación más arbitraria, como un presumiblemente navegador web, la descarga requerirá una lógica adicional para ver el archivo de descarga para verificar que la descarga se haya completado, sin embargo, la lógica de Shell no ha cambiado.
Si desea monitorear un proceso ya iniciado, puede hacerlo en un Shell :
# while pgrep &>/dev/null -f process_name; do sleep 60; done; shutdown -h now
Hay una aplicación, llamada sentinella, que puede hacerlo por usted con su GUI:
para instalarlo:
Sudo aptitude update
Sudo aptitude install sentinella