Как перестать мучиться с PID и начать жить: обзор интерактивного киллера процессов Pik
Знакомая ситуация: вы запускаете локальный сервер, он падает, но порт остается занят. Или какой-то процесс в фоне начинает нещадно «пожирать» память, а вы судорожно пытаетесь вспомнить, как правильно составить регулярку для pkill. Обычно это заканчивается цепочкой команд ps aux | grep ..., копированием PID вручную и финальным kill -9.
Кажется, в 2024 году это должно работать изящнее. Именно для тех, кто ценит свое время и комфорт в терминале, появился Pik (Process Interactive Kill) — инструмент, который превращает рутинную очистку системы в быстрый и даже приятный процесс.
Что такое Pik и зачем он в вашем терминале?
Pik — это опенсорсная утилита на Rust, которая заменяет стандартные kill и pkill на интерактивный TUI-интерфейс. Основная идея проста: вместо того чтобы вводить точные данные процесса, вы просто начинаете печатать его название, а Pik на лету фильтрует список.

Это не просто «красивая обертка». Проект решает главную проблему стандартных утилит — отсутствие обратной связи. С Pik вы точно видите, что именно собираетесь завершить, прежде чем нажать заветную комбинацию клавиш.
Пять причин, почему Pik удобнее обычного kill
Разработчик проекта, Яцек Курлит, явно вдохновлялся инструментами вроде fzf. Вот основные фишки, которые делают Pik незаменимым:
1. Умный поиск по портам
Это, пожалуй, моя любимая функция. Если вам нужно «прибить» процесс, занявший порт 8080, не нужно искать его через lsof -i :8080. Просто введите в Pik :8080.

2. Фильтрация по аргументам командной строки
Иногда у вас запущено десять инстансов Node.js, и вам нужен только тот, что запущен с флагом --debug. В Pik достаточно ввести -debug, и список мгновенно сократится до нужного процесса.

3. Работа с «семьями» процессов
Бывает, что процесс порождает кучу дочерних веток. Обычный kill может оставить «сирот». В Pik можно использовать префикс @ (например, @1234), чтобы выбрать процесс вместе со всеми его потомками.
4. Поиск «везде»
Если вы не помните точно, как называется процесс, но знаете, что в его пути или описании было слово «firefox», используйте префикс ~. Pik проверит не только имена, но и полные пути к исполняемым файлам.

5. Привычные Readline-хоткеи
Если вы привыкли к Bash или Zsh, вам не придется переучиваться. Pik поддерживает стандартные комбинации: Ctrl+A для перехода в начало строки, Ctrl+E в конец, Alt+B для перемещения по словам. Это мелочь, но именно из таких мелочей складывается удобство.
Техническая сторона вопроса
Проект написан на Rust, что гарантирует высокую скорость работы и минимальное потребление ресурсов. Для отрисовки интерфейса используются современные TUI-библиотеки, благодаря чему всё работает плавно даже на слабых машинах.
Интересно, что автор заложил отличные возможности кастомизации. Через config.toml можно не только переназначить клавиши, но и настроить цветовую схему под свою любимую тему терминала.
Как начать пользоваться?
Установка максимально простая, особенно если у вас уже стоит Rust:
cargo install pik
Для пользователей различных дистрибутивов Linux есть готовые пакеты в Arch (AUR), Fedora и Gentoo. А если вы на macOS, можно просто скачать бинарник из релизов на GitHub.
Маленький совет: после установки попробуйте запустить pik. Чтобы убить выбранный процесс, используйте Ctrl + X. Это сделано специально, чтобы вы случайно не закрыли что-то важное привычным Enter.
Стоит ли оно того?
В моей практике Pik стал отличной заменой связке ps + grep. Он особенно полезен:
- Backend-разработчикам, которые постоянно перезапускают микросервисы.
- Системным администраторам, которым нужно быстро найти «зависший» процесс на сервере.
- Любителям автоматизации, которые ценят лаконичные и эффективные инструменты.
Проект всё еще активно развивается (на момент написания статьи он находится в статусе «under development»), но уже сейчас он работает стабильно и выполняет свою задачу на 100%. Если вы ищете способ сделать свою работу в консоли чуть менее стрессовой — Pik определенно заслуживает места в вашем /usr/local/bin.
Попробовать проект можно здесь: jacek-kurlit/pik
А как вы обычно ищете и завершаете процессы? Делитесь своими лайфхаками в комментариях!
