Evita que a máquina entre em suspensão quando as conexões SSH estão ativadas O

11

Estou tentando economizar energia alternando os desktops para o modo de suspensão quando eles estão inativos. Mas muitos desktops também são acessados via SSH por seus proprietários. Há uma solução wakeonlan implantada para permitir que os proprietários liguem a máquina, mas o problema é que as máquinas serão suspensas automaticamente em 10 minutos, mesmo que a conexão SSH esteja ativada.

O que estou tentando fazer é incluir as sessões SSH ativas nas definições de "atividade".

A questão é que isso pode ser feito através da definição de uma regra de polkit? Isso pode ser feito colocando um script que é executado antes da suspensão real e aborta se as sessões SSH forem encontradas? Eu preciso de uma maneira legítima de fazer isso. Se não for assim, as maneiras hacky também são bem-vindas.

Solução atual de hacky ingênuo: edite /usr/sbin/pm-suspend :

#check for SSH sessions, and prevent suspending:
if [ "$(who | grep -cv "(:")" -gt 0 ]; then
    echo "SSH session(s) are on. Not suspending."
    exit 1
fi

Isso serve ao propósito. Mas eu não sei quando uma atualização irá sobrescrever o arquivo /usr/sbin/pm-suspend . Eu também não sei como isso funcionará com outras implementações de suspensão, como o tuxonice.

    
por Bhavin Doshi 08.09.2014 / 20:30

1 resposta

15

Dê uma olhada em pm-action(8) e pesquise /etc/pm/sleep.d na seção “ARQUIVOS”. Se um desses scripts retornar com um status de saída diferente de zero, a suspensão será impedida.

Instruções atualizadas para maior clareza:

  1. Portanto, crie um arquivo /etc/pm/sleep.d/05_ssh_keepawake .

  2. Coloque um shebang ( #!/bin/sh ) e o código mencionado na pergunta neste arquivo .

  3. Defina permissões de execução:

    chmod +x /etc/pm/sleep.d/05_ssh_keepawake
    
por David Foerster 08.09.2014 / 20:45