Htop

htop — компьютерная программа, предназначенная для вывода на терминал списка запущенных процессов и информации о них (монитор процессов). Создана как альтернатива программы top. Написана на языке Си. Предоставляет пользователю текстовый интерфейс; для вывода на терминал использует библиотеку ncurses.

История 

Человек по имени Hisham Muhammad (ведущий программист проекта  (система управления пакетами для Lua), доктор философии  в  (Рио-де-Жанейро, Бразилия) (в университете, в котором был разработан язык программирования Lua)) был недоволен тем, что утилита top не поддерживала вертикальную и горизонтальную прокрутку, и в 2004 году начал разработку программы htop.

Автор (Hisham Muhammad) назвал программу «htop» по аналогии с тем, как названа программа «pinfo», написанная программистом по имени Przemek Borys. Слово «pinfo» означает «Przemek's ». Слово «htop» означает «Hisham's top».

Программа получала сведения о процессах из виртуальной ФС procfs, реализованной ядром Linux, поэтому могла работать только в ОС Linux.

Первое сообщение с упоминанием ОС FreeBSD опубликовано в списке рассылки 9 мая 2006 года и информирует о выходе htop версии 0.6.1. 30 августа 2007 года в коллекцию портов ОС FreeBSD была добавлена портированная программа htop версии 0.6.6 (выпущенная 1 июня 2007 года). Для эмуляции procfs программа использовала библиотеку linprocfs. Появилась возможность портирования htop под любую ОС, поддерживающую слой эмуляции procfs.

htop версии 0.8.2 (выпущенная 2 июня 2009 года) была портирована для работы в ОС Mac OS X. Портирование было выполнено путём замены кода, специфичного для Linux, на код, специфичный для Mac OS X.

13 января 2014 года проект переехал с сайта SourceForge.net на сайты http://hisham.hm/htop/, GitHub.com (исходный код) и FreeLists.org (список рассылки).

До версии 1.0.3 (выпущенной 24 апреля 2014 года) программа официально поддерживала только ОС Linux. Начиная с версии 2.0.0 (выпущенной 10 февраля 2016 года) в исходный код htop был добавлен слой для абстрагирования от особенностей различных ОС. Усилиями сообщества htop удалось портировать для работы в операционных системах FreeBSD, OpenBSD и Darwin (Mac OS X).

Применение 

htop часто применяется в тех случаях, когда информации, получаемой от утилиты top, недостаточно, например, при поиске утечек памяти в процессах.

htop также используется как .

Возможности 

htop по умолчанию сортирует список процессов по величине, позволяющей оценить продолжительность времени выполнения процесса на ЦПУ (клавиша ) («CPU%»). Также сортировка возможна по размеру занятой процессом памяти (клавиша ) («MEM%»), по времени выполнения процесса в пространстве ядра и пространстве пользователя (клавиша ) («TIME+») и по любому отображаемому параметру процесса (клавиши  и ).

htop показывает:
 время, прошедшее с момента запуска ОС ();
 загруженность ОС ();
 размеры страниц памяти, размещённых в ОЗУ («Mem»);
 размеры страниц памяти, сохранённых в файл или на раздел подкачки («Swp»);
 нагруженность всех процессоров («CPU») или каждого процессора/ядра по отдельности.

В отличие от утилиты top, htop:
 по умолчанию показывает список всех процессов, запущенных в ОС;
 позволяет выполнять вертикальную и горизонтальную прокрутку списка процессов (клавиши стрелок);
 реализует диалог (клавиша ), позволяющий менять настройки без перезапуска программы, например, выбрать параметры процессов для показа, поменять цветовую схему;
 позволяет отправлять сигнал одному или нескольким выбранным процессам без ввода pid (клавиша ) (аналог функциональности утилиты kill);
 также без ввода pid позволяет:
 менять приоритет nice процесса для планировщика процессов (клавиши  и ) (аналог функциональности утилит nice и renice);
 выбирать процессоры/ядра, на которых процесс может выполняться (клавиша ) (см. ) (аналог функциональности утилиты taskset из пакета util-linux);
 менять приоритет операций ввода-вывода для планировщика ввода-вывода (клавиша ) (аналог функциональности утилиты ionice);
 просматривать значения переменных окружения (клавиша );
 поддерживает мышь.

Также htop:
 позволяет выбирать несколько процессов из списка:
 клавиша пробел — выделение одного процесса;
 клавиша  — выделение процесса и всех его дочерних процессов;
 клавиша  — отменить выделение;
 позволяет выполнять поиск по pid (клавиши цифр) или по имени процесса (клавиши  и );
 позволяет просматривать открытые процессом файлы (клавиша ) (аналог функциональности утилиты lsof);
 позволяет следить за системными вызовами процесса (клавиша ) (аналог функциональности утилиты );
 позволяет следить за вызовами процессом библиотечных функций (клавиша ) (аналог функциональности утилиты );
 позволяет просматривать процессы, запущенные от имени одного пользователя (клавиша );
 может выводить процессы в виде дерева (клавиша ) (аналог функциональности утилиты );
 может показывать потоки процессов пользователя (клавиша ) и потоки ядра (клавиша );
 использует CSI коды для разукрашивания выводимого текста.

 Значения цветов

См. также 

 Программа top.
 Программа atop.
 Диспетчер задач.

Примечания

Ссылки 
  — официальный сайт проекта.
  — репозиторий проекта.

Программное обеспечение с лицензией GNU GPL
Программное обеспечение для Linux
Свободное программное обеспечение, написанное на Си
Ncurses
Системное администрирование