Apagar el sistema al terminar un proceso

Apagar el sistema al terminar un proceso.

Es algo común que al trabajar con nuestro sistema desktop, nos tengamos que ir y claro… no queremos dejar nuestra maquina en marcha.

Apagar nuestra maquina no supone ningún problema, el problema surge cuando tenemos alguna aplicación / proceso funcionando y queremos que termine su trabajo.

Tenemos prisa y esto no termina, ufff. Nos ponemos de los nervios…

Tranquilo no pasa nada, la solución es simple, haremos que se apague automáticamente al terminar su trabajo, ya veras que sencillo es.

 

Apagar el sistema al concluir su trabajo

En este ejemplo vemos uno de los casos más comunes, estamos en plena descarga con “WGET” y parece no terminar nunca, jaja.

Lo primero que se nos viene a la cabeza es usar el comando “shutdown” agregando el tiempo que más o menos creemos que tardara en terminar la descarga, por ejemplo si calculamos 45 minutos, sería:

Esta claro que a los 45 minutos se apagara el sistema, el comando se ejecutara y realizara la tarea que le has indicado. Pero que se ejecute correctamente no quiere decir que la descarga haya concluido, shutdown no es un comando adivino… no lo sabe, cerrara la maquina haya concluido o no la descarga, por lo tanto lo menos que nos puede pasar es que tengamos que ejecutar de nuevo la descarga completa.

Todo tiene solución y eso es lo que vamos a hacer.

 

Crearemos un bash y usaremos while (loop) de forma que se cree un bucle que compruebe con pgrep si el proceso sigue activo o no.

En el ejemplo propuesto el script realizara la comprobación cada 10 segundos, cuando detecte que ya no esta activo apagara el sistema.

Como ves en el ejemplo definimos directamente la aplicación “wget“, y debo decir que en alguna ocasión puede inducir a error (es extraño pero puede suceder).

Entonces lo que hacemos es capturar el ID de proceso y definirlo directamente.

ejemplo de salida…

Ok, ya sabemos que el id de proceso es el “1919“, así que haremos lo mismo que anteriormente pero al proceso directamente.

 

Como ves es muy fácil, espero te resulte de utilidad.

PD: El “/dev/null” es para que no salten las molestas ventanas de aviso cada 10 segundos.

 

Apagar el sistema al terminar un proceso
4.7 (93.33%) 3 Votos

Agregar comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.