application_x_javascriptСравнительно недавно, наткнулся я в ru_mac на очень полезный скрипт. Но донести его до всех наших читателей дошли руки только сейчас. Я читаю, что скрипт очень полезный.

Итак, постановка задачи:

Надо запустить какое-то ресурсоемкое приложение (самый простой пример — конвертация видео), на работу которого уйдет несколько часов. В большинстве случаев, такие задачи ставят выполняться на ночь. Но ведь не работать же машине еще по-ночи после завершения работы (ресурс, шум (не так актуально для буков и аймаков), экономия электричества, в конце концов).

Соотвественно, надо бы заставлять компьютер переходить в спящий режим после завершения работы. Можно, конечно и запланировать режим сна, но дело рискованное, ибо даже гидрометцентр не может на 100% спрогнозировать 🙂 . Решение получше — контроль загруженности процессора.

Сам скрипт:

#!/bin/bash

export cpuUsageSafari=`ps -A -o %cpu -o command | grep Safari | grep -v grep | awk ‘{print $1}’`

# please! in the line above, replace Safari with a name of your application!

echo $cpuUsageSafari

while [ $cpuUsageSafari > 0 ]; do
   if [ $cpuUsageSafari = «0.0» ]; then
      echo Well above 9K
      export cpuUsageSafari=`ps -A -o %cpu -o command | grep Safari | grep -v grep | awk ‘{print $1}’`
   else
      echo Time to sleep
      echo «Next command is sleep — uncomment me»
      osascript -e ‘tell application «System Events» to sleep’
   break
   fi
   sleep 1
done

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

Таже, для страховки (и меньшей нагрузки на комп от самого скрипта), последний параметр (sleep 1) можно изменить, установив проверку не каждую секунду, а например 5 или 10.

Большое спасибо glebcha за скрипт (и всем помогавшим отточить его).


Читайте также: