Programe um Mac para dormir, apenas uma vez

18

É possível agendar um Mac para dormir apenas uma vez? Sei que posso definir um cronograma para isso, mas quero ter controle sobre ele.

Então, ocasionalmente, vou para a cama, mas deixo um arquivo transferido e quero que o Mac durma daqui a uma hora. Então, como eu faria isso sem definir um cronograma de longo prazo?

Gary
fonte
2
Se você estiver baixando no Terminal, poderá combinar os dois comandos semelhantes a: sudo sh -c 'wget http://download.com/file.zip; pmset sleepnow'O comando sleep será executado apenas quando o wget sair.
Overbryd

Respostas:

28

O pmsetcomando terminal deve fazer o que você deseja. A seguir, o computador será suspenso às 23:45:00 de 2 de dezembro de 2014. No entanto, o comando deve ser executado em uma conta de administrador:

sudo pmset schedule sleep "12/02/14 23:45:00"

O formato da data MM / DD / AA não pode ser alterado; portanto, se você estiver acostumado a um formato diferente, tenha cuidado.

Se você fizer isso regularmente, poderá escrever uma função e salvá-la no seu ~/.profile:

# Schedule sleep in X minutes, use like: sleep-in 60
function sleep-in() {
  local minutes=$1
  local datetime=`date -v+${minutes}M +"%m/%d/%y %H:%M:%S"`
  sudo pmset schedule sleep "$datetime"
}
Kent
fonte
2
Eu estava recebendo um erro ao chamar a função sleep-in:local:2: not an identifier: 23:35:31. Acontece (pelo menos na minha instalação (zsh)) que você precisa agrupar essa expressão de backtick de data entre aspas duplas. Então faça:local datetime="`date -v+${minutes}M +"%m/%d/%y %H:%M:%S"`"
Matt Dodge
Função complementar para cancelar a suspensão (substitua "\ n" pelas novas linhas reais): function sleep-cancel-all() {\n NUM_OF_SLEEPS=$(pmset -g sched | wc -l)\n if [[ $NUM_OF_SLEEPS -gt 0 ]]; then\n # The first line of output is a header, ignore it.\n NUM_OF_SLEEPS=$(expr $NUM_OF_SLEEPS - 1)\n seq $NUM_OF_SLEEPS | xargs -Iz sudo pmset schedule cancel 0\n fi\n }\ n
KFunk
7

Por padrão, não há como fazer isso com as opções disponíveis nas preferências do sistema.

insira a descrição da imagem aqui

Mas você pode fazer isso na linha de comando com um comando simples:

sleep 10; osascript -e 'tell application "System Events" to sleep'
  • sleep 10pause a execução do seguinte comando por 10 segundos. Se você deseja minutos ou horas, deve alterar 10 com o número de segundos que deseja.
  • osascript -e 'tell application "System Events" to sleep' coloque o computador no modo de suspensão.
jherran
fonte
11
Com coreutils GNU, sleepaceita argumentos como 10s, 5m, 3hpor segundos, minutos e horas, respectivamente.
AT
1

Todas as respostas acima funcionam, mas se você quiser fazer isso regularmente, recomendo o software Power Manager , que permite definir tempos de suspensão personalizados, tanto para uma vez como para eventos recorrentes com muita facilidade (muito mais facilmente do que usar os comandos do Terminal, em inglês). minha opinião). O software é relativamente caro (US $ 50), mas há uma avaliação gratuita de 30 dias com todos os recursos. Você também pode controlar o Power Manager no seu iPhone, o que é bom se você estiver longe do computador, mas quiser configurá-lo para dormir ou desligar.


fonte
1

Para controle de energia do seu Mac a partir do iPhone em uma rede local, usei o Off Remote, que também pode agendar nas próximas 24 horas uma ação do sistema (Desligar, Bloquear, Reiniciar, Logoff, Suspensão) e custa apenas US $ 3 no iOS armazenar, mas requer a instalação de um aplicativo auxiliar adicional no seu Mac para receber as instruções do aplicativo para iPhone.

Outra resposta sugerida aqui é o uso do software Power Manager , que custa US $ 50, mas eu sugeriria o software Keyboard Maestro, de US $ 36, um pouco menos intuitivo que o Power Manager, mas com maior flexibilidade além do gerenciamento de energia. Ao procurar a capacidade de agendar a suspensão do meu Mac, lembrei-me de que eu tinha esse utilitário e consegui arrastar e soltar rapidamente os componentes de macro no KM para criar um script que pausou por um período de tempo definido e depois colocou o Mac em dormir:

script maestro do teclado para colocar o Mac em repouso após 2 horas

… Também existe uma ação no Keyboard Maestro para também agendar macros (para colocar o Mac em suspensão, desligar, reiniciar etc.) a serem acionadas em horários designados:

gatilho maestro do teclado para macro com base na hora e dia (s) da semana

O Keyboard Maestro é mais barato e muito mais robusto para o desenvolvimento de macros que podem aprimorar o uso do seu Mac, mas há um pouco mais de uma curva de aprendizado do que o aplicativo Power Manager.

Alan Cook
fonte