OS X: como impedir que o computador durma durante uma sessão ssh
Quando ssh em um computador OS X na minha rede, a sessão dura até que o OS X entre no modo de suspensão .
Existe uma maneira de impedir que isso aconteça durante a minha sessão SSH , além de bater fisicamente no mouse ou digitar teclas ou desativar manualmente a função de suspensão?
EDIT: A sessão ssh normalmente seria uma montagem simples do sshfs.
Você também não gostaria de impedir que ele durma antes da sua sessão SSH?
Esta não é uma solução pronta para uso, mas possivelmente funcionará se ninguém encontrar uma solução :-)
Você pode manipular as configurações de gerenciamento de energia com o comando pmset. Veja a página de manual para mais informações.
A configuração interessante que queremos manipular é o sono :
Agora temos que acionar esses comandos após um login e logut. Se bem me lembro, o Bash é o shell padrão do Mac OS X que nos leva a esses dois arquivos:
Edite ou crie-os no diretório inicial e adicione os comandos apropriados. Se desejar, salve o valor atual de suspensão em um arquivo temporário e restaure-o depois.
O último problema a resolver é o prompt de senha do sudo. Para dar ao usuário a permissão de chamar o pmset sem nenhuma senha, edite seus / etc / sudoers com sudoedit. Você precisa usar a NOPASSWDtag. Se isso é novo para você, consulte o manual do sudoers .
este método funcionaria se a conexão ssh fosse apenas uma montagem sshfs?
Não tenho certeza, mas acho que o sshfs não abrirá um shell de logon, portanto isso não funcionará com o sshfs.
— echox 8/09/10
Isso me permitiu usar meu mac sobre SSH, não importa o quê, desde que o mac esteja conectado a uma fonte de energia.
Tudo é desligado quando o Mac desliga sua fonte de energia, para que você não precise se preocupar com a duração da bateria.
Esta opção é inútil no macOS Sierra. Meu iMac dorme independentemente dessa configuração, ativa o acesso SSH e dorme imediatamente após o logon do SSH. É realmente irritante.
— 11267 Bruno Philipe
Esta resposta finalmente resolveu meu problema depois de mexer no ~ / .ssh / config por horas no iMac do Mojave
— n1000 04/04
O utilitário pmset embutido no OS X possui uma configuração que pode fazer o que você deseja. Verifique a página de pmsetmanual para a ttyskeepawakeconfiguração e a explicação que o acompanha.
O comando a seguir provavelmente fará o que você deseja:
O -csinalizador ativa essa configuração especificamente quando o computador está funcionando com energia CA (ao contrário da bateria ou da UPS) e ttyskeepawake 1impede que o computador durma durante uma sessão tty ativa (presumivelmente remota). Ele vai permitir que o sono se a sessão esteve inactiva durante mais tempo do que o temporizador de sono, mas se isso é um problema, talvez o computador não deve ser definido para dormir.
Para usar o SSH para abrir um shell em uma máquina OSX remota e impedir que ele durma durante a sessão SSH:
Desde o Mac OS X 10.8, você deve poder usar o caffeinate(8)comando.
Tente caffeinate -s ssh server.example.com.
O OP está tentando impedir o Mac remoto (ou seja, o servidor ssh) de dormir. A menos que eu esteja enganado, seu exemplo impedirá apenas o sono no terminal do cliente.
Se o processo for filho direto de um daemon ssh, execute um mesmo shell através do comando caffeinate (8) para impedir que o sistema durma durante a sessão ssh.
— Kubo Takehiro
Uma pesquisa na web para impedir o sono do mac traz muitas informações boas sobre utilitários e truques que você pode usar.
No entanto, na sua situação, suspeito que o que você realmente deseja fazer é ter uma sessão ssh separada que execute um programa de linha de comando muito simples que impede o Mac de dormir. A Apple fornece o código-fonte completo na seção Perguntas e respostas técnicas 1160: Prevenção do sono . (Infelizmente, esta página está quebrada no site da Apple atualmente, mas você pode obter uma cópia do cache do Google.)
Não testei para ver se este programa pode ser executado com êxito em uma sessão ssh, mas parece que poderia.
Observe que as implementações do sshfs geralmente não ficam conectadas ao sistema remoto o tempo todo e apenas executam uma sessão quando desejam um arquivo ou diretório. Portanto, você precisa de uma sessão ssh separada, executando em uma janela de terminal minimizada, para executar o programa insônia.