Disattiva la modalità di sospensione per un'app specifica?

5

Posso disattivare la modalità di sospensione per un'applicazione specifica in modo che il mio mac non vada in pausa fino a quando l'app non viene chiusa?

    
posta dierre 15.04.2012 - 15:40
fonte

3 risposte

2

Se hai qualche interesse nell'esecuzione dello script della shell, funzionerà il seguente. Basta impostare "Display_Sleep_Time" e "System_Sleep_Time" come vuoi che siano insieme alla "App" che stai scegliendo per evitare di dormire. Lanciando lo script ogni volta che esegui la tua app, tutti i tempi di sospensione saranno impostati su 0, impedendo allo schermo e al sistema di dormire.

TESTED ON

  • 10.5.x
  • 10.6.x
  • 10.7.4

NOTA: AVVERTENZA QUESTO SCRIPT CONTIENE UN LOOP INTERNO. Potresti preferire utilizzare il seguente script all'interno di un demone piuttosto che utilizzare il ciclo interno fornito dallo script. Tuttavia, vale lo stesso concetto.

#!/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
    
risposta data 19.04.2012 - 17:37
fonte
0

Potresti anche aggiungere una riga come questa a un crontab:

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

(Usa EDITOR=nano crontab -e se non hai cambiato $EDITOR e non sai come usare vi.)

sono stati aggiunti caffeinate e pgrep a Mountain Lion.

Puoi ottenere un elenco di power assertions con pmset -g assertions . caffeinate o caffeinate -i deve impostare PreventUserIdleSystemSleep su 1.

    
risposta data 22.09.2012 - 09:45
fonte
0

L'app di anfetamine è gratuita e fa esattamente questo (e molto altro ancora)

link

    
risposta data 04.01.2019 - 18:07
fonte

Leggi altre domande sui tag