Ответы:
В Mountain Lion вы можете использовать caffeinate
команду.
caffeinate -u -t 1000
предотвратит бездействующий сон на 1000 секунд.
Решение этой проблемы - не держать клиента (ваш Mac) в активном состоянии. Использование таких подходов не заслуживает доверия. Что произойдет, если сетевое соединение потеряно? Даже если ваш Mac не спит, сценарий остановится.
использование nohup
Если ваш долгосрочный скрипт вызывается eternity.sh
, попробуйте следующее:
nohup /path/to/eternity.sh > /path/to/output.out &
Теперь вы можете даже закрыть соединение, и ваш скрипт продолжит работу . В &
фонах процесс , так что вы можете держать соединение открытым и вводить команды. Просмотрите любой вывод из вашего скрипта через:
tail -f /path/to/output.out
Пути в примерах являются необязательными, если сценарий находится на вашем пути, и вы хотите, чтобы вывод сценария записывался output.out
в текущем каталоге.
Я управляю сценариями, которые запускаются по несколько дней. Подобные скрипты должны быть отсоединены от терминала. К счастью, nohup
обеспечивает легкий для запоминания вызов команды для достижения этой цели - не думайте о зависании .
Другой вариант - pmset . Используйте команду pmset noidle
для предотвращения сна, пока pmset
он работает. К сожалению, для этого требуется отдельное окно терминала с pmset
запущенным в нем. Тем не менее, другой вариант, caffeinate
только позволяет установить определенное время . Таким образом, это вопрос выбора, хотите ли вы открыть второй сеанс SSH или иметь дело с ограничением времени.
Редактировать: Согласно комментарию бинарного боба , вы можете запустить его в фоновом режиме следующим образом: pmset noidle &
Чтобы вернуться к pmset
типу fg
.
pmset
в фоновом режиме, используя pmset noidle &
текущую командную строку. Введите, fg
чтобы pmset
вернуться, и в этот момент вы можете
!pmset noidle
- очень хорошо, когда у вас есть рабочий стол, обслуживающий ноутбук IPython и ноутбук, подключенный удаленно.
caffeinate -i -s /bin/ssh ...
Объяснение:
-i
- Предотвратить бездействующий сон.
-s
- Предотвратите сон системы (полностью, даже если вы закроете крышку). Примечание: он работает только от сети переменного тока.
/bin/ssh
- Просто продолжайте писать команду, которую хотите выполнить. Использование ssh
напрямую, а не /bin/ssh
должно также работать.
Результаты: Ваша система не будет спать, пока выполняется ssh
команда.
Если вы ищете ядерный вариант, как я:
sudo systemsetup -setcomputersleep Never
- Установите или отключите режим сна из-за неактивности системы Mac из командной строки в OS X
Заставка StarMessage ( http://starmessagesoftware.com/moonscreensaver/ ) также позволяет держать MAC в активном состоянии в течение 2 часов, 8 часов или навсегда. Этот способ отключения сна MAC, намного проще, чем кофеин.