Как узнать, когда компьютер простаивает?


8

У меня есть компьютер, который используется только в некоторых случаях, и мне было интересно, есть ли способ отключить его после периода бездействия.

Вот сложная часть: если бы я просто думал о том, чтобы отключить его, когда графический интерфейс простаивает, то я думаю, что это будет значительно проще, но я стараюсь не отключать никого, кто активно использует машина через SSH также. Это компьютер Debian 5.0.

Есть ли способ определения, если машина простаивает, так как никто не использует графический интерфейс и никто не использует машину через SSH? Если SSH-соединение открыто, но активно не используется, то компьютер должен считать это незанятым.


Может быть, это должно быть перенесено в stackoverflow?
Джефф Веллинг

вопрос не особенно в программировании, и могут быть подходящие ответы, которых тоже нет.
jmtd

Друг предложил DBUS, но в течение моих коротких 5 минут поиска в Google это не выглядело так, как будто бы он обращал внимание на ssh-соединения, неактивные или нет. Я был бы хорош, если бы я был не информирован, хотя ... нужно продолжать смотреть, когда я просыпаюсь.
Джефф Веллинг

1
Почему вы хотите выключить компьютер Linux в любом случае? :-)
амфетахин

@amphetamachine Энергосбережение. Снижение тепловой мощности в большой комнате кластера. У нас есть два Linux-кластера, где я работаю; один 69 машин, другой 43: включение управления питанием измерило разницу в тепле комнат (которые были слишком горячими) и счетах за электроэнергию.
JMTD

Ответы:


2
who -q

Покажет, у кого и у скольких пользователей открыт tty (т.е. на консоли, через X, ssh, telent), но не покажет пользователей, подключающихся через pop, http и т. Д.


Есть ли способ сообщить, какой последней командой они выполняли (PID, чтобы проверить, все ли еще выполняется) и когда она была выполнена? Как вы думаете, это может быть достигнуто с некоторыми изменениями в приглашении bash?
Джефф Веллинг

Вы должны были бы быть более конкретными о том, что вы имеете в виду. Что если они запустят программу setsid перед выходом из системы - вы сочтете их сеанс все еще активным? Что вы не можете получить из истории Bash?
Symcbean

1

gdm/ gnome-power-managerможет обнаружить это и соответствующим образом приостановить работу машины. для GNOME2 Попробуйте

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

а также

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

как корень. Вам может потребоваться перезагрузка, gdmчтобы настройки вступили в силу. (число секунд, поэтому 600 - 10 минут).

под GNOME3 есть подобная пара gsettingsключей (вышеописанное не работает).

Если вы не используете GNOME, вы можете проверить источник, gnome-power-managerчтобы выяснить, как он устанавливает бездействие.


1
gdm / gnome-power-managerможно обнаружить простаивающие соединения SSH?
Джефф Веллинг

праздные? Активные? Я так считаю. Ваш вопрос предполагал, что вы не хотите отключать людей, использующих компьютер через ssh активно . Если вы не хотите, чтобы они приостанавливались даже при простое ssh-соединении, пожалуйста, пересмотрите ваш вопрос.
JMTD

На самом деле это звучит как то, что я хочу! Я проверю это, спасибо! После того, как я проверил, что это будет работать для моих целей, я выберу ваш ответ :)
Джефф Веллинг

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.