Процессы в Linux: шпаргалка

Посмотреть, запустить в фоне, остановить — и прочитать код возврата.

Посмотреть процессы: ps, pgrep

ps aux                    # все процессы системы
ps -o pid,stat,cmd -p 42  # конкретный PID
pgrep -a nginx            # PID + команда по имени

ps aux — снимок всей системы: USER, PID, %CPU, %MEM, STAT, COMMAND. pgrep ищет по имени и, в отличие от ps | grep, не ловит в выдачу сам себя.

Фон: &, $! и wait

sleep 300 &   # запустить в фоне
echo $!       # PID последнего фонового
wait $!       # дождаться его завершения

& возвращает управление сразу, процесс работает в фоне. $! — PID последнего фонового процесса: сохрани его сразу, следующий & перезапишет значение.

kill: сначала TERM, потом -9

kill 4242     # SIGTERM: вежливо, можно убраться
kill -9 4242  # SIGKILL: ядро снимает без уборки
pgrep -a node # перед pkill — проверь, кого убьёшь

kill без номера шлёт SIGTERM — процесс может дописать данные и выйти. SIGKILL не перехватывается: недописанные файлы и незакрытые транзакции останутся. Поэтому -9 — последний аргумент.

Сигналы и trap

# TERM(15) стоп · KILL(9) насильно · INT(2) Ctrl+C · HUP(1)
trap 'rm -f "$tmp"; exit' TERM INT  # уборка при остановке
kill -l   # весь список сигналов

SIGTERM и SIGINT перехватываемы — на этом строится graceful shutdown (docker stop и systemctl stop шлют именно TERM). SIGKILL и SIGSTOP перехватить нельзя.

Коды возврата: $? и 128+N

ls /nope; echo $?  # 2 — ошибка
# убит сигналом → 128 + номер:
# 143 = TERM(15) · 137 = KILL(9, часто OOM) · 130 = Ctrl+C(2)

0 — успех, всё остальное — ошибка; $? хранит код последней команды. Числа выше 128 читаются как «снят сигналом»: 137 в логах CI и Docker — почти всегда нехватка памяти.

Система: top, df -h, du -sh

top        # живая таблица процессов, q выход
df -h      # свободное место по дискам
du -sh logs/  # сколько весит каталог

top — динамика вместо снимка ps; удобнее его htop, если установлен. df смотрит на файловые системы целиком, du — на конкретный каталог: пара для вопроса «куда делось место».

поделиться: Telegram VK

Что дальше