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

diff вывод двух команд, не создавая временный файл вручную (удар):

diff <(ls dir1) <(ls dir2)
29
28.11.2013, 12:25
7 ответов

Это не 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

Это позволило мне использовать мой Mac Over SSH, независимо от того, что, если Mac подключен к источнику питания.

System Preferences, Energy saver, Prevent computer from sleeping automatically when the display is off

Все выключено, когда Mac снимает свой источник питания, поэтому вам не нужно беспокоиться о сроке батареи.

9
27.01.2020, 19:38

Использовать SSH для открытия оболочки на удаленной машине OSX и предотвращения ее засыпания на время сеанса SSH:

$ ssh -t me@mymacbook caffeinate -i bash
6
27.01.2020, 19:38

Я добавил следующий сценарий в .bash_profile

if expr "$(ps -o comm= $PPID)" : '^sshd:' > /dev/null; then
  caffeinate -s $SHELL --login
  exit $?
fi

Если процесс является прямым дочерним процессом демона ssh, запустите тот же shell с помощью команды caffeinate(8), чтобы предотвратить засыпание системы во время сеанса ssh.

3
27.01.2020, 19:38

Теги

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