Buenas, hace poco descubrí el programa «caffeine» (escrito en Python)
que está muy bueno. Por un lado es un demonio que evita la suspensión de
la computadora si hay una aplicación corriendo en pantalla completa.
También viene con la aplicación «caffeinate» que permite ejecutar
un comando cualquiera y evitar que la computadora entre en suspensión,
por ejemplo al bajar un archivo grande o ejecutar una tarea que lleve
mucho tiempo. La sintaxis es "caffeinate <comando> <argumentos>"
Funciona bien con <argumentos> que no tengan guiones, por ejemplo:
$ caffeinate wget https://debian.org/
Pero al intentar usar guiones como por ejemplo:
$ caffeinate ffmpeg -hwaccel vaapi -i video1.mp4 -vcodec libx265 -crf
28 video2.mp4
no funciona, falla, sale el mensaje:
usage: caffeinate [-h] [-V] COMMAND [ARGUMENT ...]
Inhibit desktop idleness for the duration of COMMAND
positional arguments:
COMMAND command to run
ARGUMENT arguments to COMMAND
options:
-h, --help show this help message and exit
-V, --version show program's version number and exit
La única alternativa que encontré para esos casos es poner el comando en
un script y llamarlo:
$ caffeinate script.sh
Para leer los argumentos utiliza el módulo argparse. Así que la
consulta, ¿alguien sabe como pasar argumentos con guiones a caffeinate,
o en su defecto modificar el código para que los acepte?
Desde ya,
muchas gracias :)