OS X: как помешать компьютеру спать во время ssh сессии

Когда я ssh в компьютер OS X в моей сети, которую сессия длится до OS X, вхожу в режим ожидания.

Существует ли способ предотвратить это во время моей сессии SSH кроме физического столкновения мыши или ввода ключей или вручную отключения функции сна?

Править: ssh сессия обычно была бы простым sshfs, монтируются.

29
28.11.2013, 12:25
4 ответа

Это не out-of-the-box решение, но оно будет возможно работать, если никто другой не предложит решение :-)

Можно управлять настройками управлением электропитанием с командой pmset. См. страницу справочника для получения дополнительной информации об этом.

Интересная установка, которой мы хотим управлять, является сном:

сон - системный таймер автоматического отключения (оценивают в минутах, или 0 для отключения),

Таким образом, мы можем использовать следующие команды:

sudo pmset sleep 25      # go to sleep after 25 minutes
sudo pmset sleep 0       # disable sleep

Теперь мы должны инициировать эти команды после входа в систему и logut. Если я помню это право, Bash является оболочкой по умолчанию для Mac OS X, который приносит нам к этим двум файлам:

   ~/.bash_profile
          The personal initialization file, executed for login shells
   ~/.bash_logout
          The individual login shell cleanup file, executed when a login shell exits

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

Последней проблемой, которая решит, является подсказка пароля sudo. Чтобы дать Вашему пользователю разрешение вызвать pmset без любого пароля, отредактируйте свой/etc/sudoers с sudoedit. Необходимо использовать NOPASSWD тег. Если это является новым для Вас, взгляните на sudoers руководство.

9
27.01.2020, 19:38
  • 1
    этот метод работал бы, если бы соединение SSH было только sshfs, монтируется? –  Stefan 08.09.2010, 22:51
  • 2
    я не уверен, но я не думаю, что sshfs откроет оболочку входа в систему, таким образом, это не будет работать с sshfs. –  echox 08.09.2010, 23:06

Веб-поиск Mac предотвращает сон, придумывает большую хорошую информацию об утилитах и приемах, которые можно использовать.

Однако в Вашей ситуации, я подозреваю, что то, что Вы действительно хотите сделать, должно иметь отдельную ssh сессию, которая запускает очень простую программу командной строки, которая препятствует тому, чтобы Mac спал. Apple дает полный исходный код в Технических Вопросах и ответах 1160: Предотвращение сна. (К сожалению, эта страница повреждается на сайте Apple в настоящее время, но можно потянуть копию с кэша Google.)

Я не протестировал, чтобы видеть, может ли эта программа быть запущена успешно от ssh сессии, но похоже, что она могла.

Обратите внимание, что sshfs реализации обычно не остаются вошедшими удаленная система все время и просто выполняют сессию, когда они хотят файл или каталог. Таким образом, Вам нужна отдельная ssh сессия, работающая в минимизированном окне терминала, для запущения программы бессонницы.

Преимущество этого подхода состоит в том, что Вы не должны использовать sudo или путаницу с настройками управления питанием системы.

2
27.01.2020, 19:38

OS X создал в pmset утилите, имеет установку, которая может сделать то, что Вы хотите. Проверьте pmset страница справочника для ttyskeepawake установка и сопроводительное объяснение.

Следующая команда, вероятно, сделает то, что Вы хотите:

sudo pmset -c ttyskeepawake 1

-c флаг устанавливает эту настройку, активную конкретно, когда компьютер работает на питании переменным током (в противоположность заряду батареи или питанию ИБП), и ttyskeepawake 1 препятствует тому, чтобы компьютер спал во время активной tty сессии (по-видимому, удаленная). Это позволит сон, если сессия была неактивна для дольше, чем таймер автоматического отключения, но если это - проблема, возможно, компьютер не должен быть установлен спать вообще.

6
27.01.2020, 19:38

Начиная с Mac OS X 10.8, необходимо смочь использовать caffeinate(8) команда.

Попробовать caffeinate -s ssh server.example.com.

5
27.01.2020, 19:38
  • 1
    OP пытается сохранить удаленный Mac (т.е. ssh сервер) от сна. Если я не ошибусь, Ваш пример только предотвратит сон на терминале клиента. –  Owen 14.01.2015, 22:23

Теги

Похожие вопросы