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?
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
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
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.
Leggi altre domande sui tag macos sleep-wake