Como saber quando um computador está ocioso?

8

Eu tenho um computador que é usado apenas parte do tempo e fiquei pensando se havia uma maneira de desligá-lo após um período de inatividade.

Aqui está a parte mais complicada: se eu estivesse pensando em desativá-la quando a GUI estiver ociosa , acho que seria significativamente mais fácil, mas estou tentando me certificar de não cortar ninguém que esteja usando ativamente o máquina via SSH também. O computador em questão é o Debian 5.0.

Existe uma maneira de detectar se a máquina está ociosa, como em ninguém usando a GUI e ninguém está usando a máquina via SSH? Se uma conexão SSH estiver aberta, mas não estiver sendo usada ativamente, o computador deverá considerá-lo ocioso.

Jeff Welling
fonte
Talvez isso deva ser movido para o stackoverflow?
21411 Jeff Welling
a questão não é particularmente de programação, e pode haver respostas adequadas que também não sejam.
jmtd
Um amigo sugeriu o DBUS, mas nos meus breves 5 minutos pesquisando no Google, não parecia prestar atenção às conexões ssh, ociosas ou não. Eu seria legal se eu estivesse desinformado ... preciso continuar olhando quando acordo.
21411 Jeff Welling
1
Por que você gostaria de desligar um computador Linux? :-)
amphetamachine
@amphetamachine Economia de energia. Reduzindo a produção térmica em uma grande sala de cluster. Temos dois clusters Linux onde eu trabalho; uma 69 máquinas, outra 43: permitir o gerenciamento de energia fez uma diferença mensurável com o calor das salas (que estavam muito quentes) e com a conta de luz.
jmtd

Respostas:

2
who -q

Mostrará quem e quantos usuários têm um tty aberto (ou seja, no console, via X, ssh, telent), mas não mostrará usuários se conectando via pop, http etc.

symcbean
fonte
Existe uma maneira de dizer qual foi o último comando que eles executaram (PID, para verificar se ainda está em execução) e quando foi executado? Você acha que isso poderia ser conseguido com algumas alterações no prompt do bash?
Jeff Welling
Você precisaria ser muito mais específico sobre o que quer dizer. E se eles iniciassem um programa fixo antes de sair - você consideraria a sessão ainda ativa? O que você não pode obter da história do bash?
symcbean 8/08/11
1

gdm/ gnome-power-managerposso detectar isso e suspender a máquina adequadamente. para o GNOME2 Try

gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s --type=int /apps/gnome-power-manager/timeout/sleep_computer_ac 600

e

gconftool-2 --direct --config-source=xml:readwrite:/etc/gconf/gconf.xml.defaults -s --type=int /apps/gnome-power-manager/timeout/sleep_computer_ac 600

como raiz. Pode ser necessário reiniciar gdmpara que as configurações entrem em vigor. (o número é segundos, 600 é 10 minutos).

no GNOME3, há um par de gsettingschaves semelhante (o que ocorreu acima silenciosamente).

Se você não estiver executando o GNOME, poderá inspecionar a fonte gnome-power-managerpara descobrir como ele estabelece a ociosidade.

jmtd
fonte
1
gdm / gnome-power-managerpode detectar conexões ssh ociosas?
Jeff Welling
ociosos? Não. Os ativos? Eu acredito que sim. Sua pergunta sugeriu que você não queria cortar pessoas usando a máquina via ssh ativamente . Se você não deseja que eles sejam suspensos, mesmo com conexões ssh ociosas, revise sua pergunta.
jmtd
Na verdade, isso parece exatamente o que eu quero! Vou verificar isso, obrigado! Uma vez que eu tenho verificado que ele vai trabalhar para os meus propósitos eu vou escolher a sua resposta :)
Jeff Welling
1

Tente o comando xprintidle para obter o tempo ocioso em milissegundos.

Coc
fonte