En Tue, Oct 14, 2025 at 09:20:40AM +0200, Camaleón escribió:
El 2025-10-14 a las 02:44 +0000, 0xfa escribió:

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 :)

Hum... no parece lógico que no funcione con argumentos con guiones
porque precisamente el paso de los parámetros/argumentos se define
precedido con guiones :-?

Algo se nos pasa.

¿Has probado a poner la «churro-orden» entre comillas?

caffeinate "ffmpeg -hwaccel vaapi -i video1.mp4 -vcodec libx265 -crf 28 
video2.mp4"

Buen día, muchas gracias por la sugerencia.

Si, había probado esa opción y da error, porque toma todo lo que está entre comillas como el comando a ejecutar y da tira el mensaje "file not found".

Saludos,

Responder a