Ответы:
В 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, намного проще, чем кофеин.