Как посмотреть запущенные процессы в Linux через терминал?
Что-то ест всю память, а программа на 8080 порту не отвечает. Хочу посмотреть, какие процессы сейчас запущены в системе и сколько ресурсов жрут. Какие команды для просмотра процессов?
2 ответа
Есть несколько команд — для разных задач.
top — живой монитор процессов в реальном времени (как «Диспетчер задач»):
top
Показывает процессы, отсортированные по нагрузке на CPU, обновляется сам. Выход — клавиша q. Ещё удобнее htop (если установлен) — то же, но красивее и с навигацией.
ps — снимок процессов на текущий момент. Чаще всего используют так:
ps aux
Длинный список всех процессов с их PID, нагрузкой по CPU и памяти, и командой запуска.
Найти конкретный процесс — скомбинируй ps с grep:
ps aux | grep python
покажет только строки с python. Здесь важна вторая колонка — PID (номер процесса), он понадобится, чтобы процесс убить.
Кто занял порт (раз у тебя проблема с 8080):
lsof -i :8080
покажет процесс, который держит порт 8080.
Частая ошибка: в выводе ps aux | grep python видеть лишнюю строку с самим grep (grep python) и принимать её за процесс. Это нормально — grep находит сам себя в списке. Ориентируйся на строки с реальной командой, а не на строку, где написано grep.
Краткий набор «посмотреть процессы»:
top/htop— живой монитор (выходq).ps aux— снимок всех процессов.ps aux | grep имя— найти конкретный.lsof -i :ПОРТ— кто занял порт.
Главное, что тебе нужно из вывода, — это PID (идентификатор процесса). С ним ты потом сможешь остановить зависшую программу через kill PID.