¿Desactivar el modo de suspensión para una aplicación específica?

5

¿Puedo deshabilitar el modo de suspensión para una aplicación específica para que mi mac no se duerma hasta que se cierre la aplicación?

    
pregunta dierre 15.04.2012 - 15:40

2 respuestas

2

Si tiene algún interés en ejecutar el script de shell, lo siguiente funcionará. Simplemente configura "Display_Sleep_Time" y "System_Sleep_Time" como quieras que estén junto con la "aplicación" que eliges para evitar que se duerma. Al ejecutar el script en cualquier momento que ejecute su aplicación, todos los tiempos de suspensión se convertirán en 0, lo que evitará que tanto la pantalla como el sistema duerman.

PROBADO

  • 10.5.x
  • 10.6.x
  • 10.7.4

NOTA: ADVERTENCIA QUE ESTE ESCRITURA CONTIENE UN LAZO INTERNO. Es posible que prefiera utilizar el siguiente script dentro de un Daemon en lugar de usar el bucle interno que proporciona el script. Sin embargo, se aplica el mismo concepto.

#!/bin/bash

watch="true"

App="Safari"
System_Sleep_Time="30"
Display_Sleep_Time="10"

System_Sleep=$(pmset -g | grep " sleep" | awk '{print $2}')
Display_Sleep=$(pmset -g | grep " displaysleep" | awk '{print $2}')

while [[ ${watch} == "true" ]]; do

    watch_App=$(ps -A | grep "${App}.app" | grep -v grep | sed "s/.*${App}.*/${App}/")

    if [[ ${watch_App} == ${App} ]]; then

        if [[ ${System_Sleep} != "0" ]]; then
            pmset -a sleep 0
            System_Sleep=$(pmset -g | grep " sleep" | awk '{print $2}')
        fi

        if [[ ${Display_Sleep} != "0" ]]; then
            pmset -a displaysleep 0
            Display_Sleep=$(pmset -g | grep " displaysleep" | awk '{print $2}')
        fi

    elif [[ ${watch_App} != ${App} ]]; then

        if [[ ${System_Sleep} == "0" ]]; then
            pmset -a sleep ${System_Sleep_Time} > /dev/null 2>&1
            System_Sleep=$(pmset -g | grep " sleep" | awk '{print $2}')
        fi

        if [[ ${Display_Sleep} == "0" ]]; then
            pmset -a displaysleep ${Display_Sleep_Time} > /dev/null 2>&1
            Display_Sleep=$(pmset -g | grep " displaysleep" | awk '{print $2}')
        fi

    else

        /usr/bin/logger -i An error has occured with preventsleep.sh

    fi

done
    
respondido por el E1Suave 19.04.2012 - 17:37
0

También puede agregar una línea como esta a un crontab:

* * * * * pgrep -x TextEdit && caffeinate -t 60

(Use EDITOR=nano crontab -e si no ha cambiado $EDITOR y no sabe cómo usar vi.)

cafeína y pgrep se agregaron en Mountain Lion.

Puede obtener una lista de aserciones de poder con pmset -g assertions . caffeinate o caffeinate -i debería establecer PreventUserIdleSystemSleep en 1.

    
respondido por el user495470 22.09.2012 - 09:45

Lea otras preguntas en las etiquetas