$ nohup running...

Nohup Test

Полное руководство по команде nohup — как запускать процессы в Linux, которые не умирают после закрытия терминала

No Hang Up • POSIX Signal • Background Process

Scroll

Что такое nohup?

Команда, которая спасает ваши процессы от смерти при закрытии терминала

nohup (no hang up) — утилита POSIX, которая запускает команду, игнорируя сигнал SIGHUP.

Когда вы закрываете терминал, все дочерние процессы получают сигнал SIGHUP (signal 1) и завершаются. Nohup предотвращает это.

Автоматически перенаправляет вывод в файл nohup.out, чтобы процесс не блокировался при отсутствии терминала.

TERMINAL CLOSED SIGHUP ✕ nohup SIG_IGN ALIVE ✓ nohup.out

Факты в цифрах

Ключевые параметры команды nohup

📡
1
Номер сигнала SIGHUP
📄
1
Файл nohup.out по умолчанию
0
Exit code при успехе (nohup сам)
📅
1970
Год появления в Unix v1
🔧
POSIX
Стандартизированная утилита

Синтаксис и применение

Как часто используются различные варианты nohup на практике

# Базовый синтаксис:
nohup команда [аргументы...]

# С перенаправлением вывода:
nohup ./script.sh > output.log 2>&1 &

# Фоновый запуск сервера:
nohup python3 app.py > /dev/null 2>&1 &

Популярность способов запуска

nohup cmd &
85%
nohup > file
72%
nohup > /dev/null
58%
nohup 2>&1
65%
nohup setsid
25%

Что происходит под капотом

Ключевые аспекты работы nohup в процентах

100%
Игнорирование SIGHUP
100%
Вывод → nohup.out
0%
Защита от SIGKILL
~75%
Используют с & (фоном)

Как работает nohup

Пошаговый процесс запуска команды

1

nohup cmd

Пользователь вводит команду

2

SIGHUP → SIG_IGN

Сигнал hangup игнорируется

3

stdout → nohup.out

Вывод перенаправляется в файл

4

stderr → nohup.out

Ошибки тоже в файл

5

Terminal closed

Терминал закрывается

6

Process alive ✓

Процесс продолжает работу!

Зачем нужен nohup

6 ключевых преимуществ для системных администраторов и разработчиков

🛡️

Защита от SIGHUP

Процесс не получает сигнал hangup при закрытии терминала — продолжает работать

📝

Автоматический лог

Весь вывод сохраняется в nohup.out — легко отслеживать прогресс и ошибки

🚀

Долгие задачи

Идеален для бэкапов, компиляций, миграций БД — задач, которые длятся часами

🔌

SSH-сессии

Запустили на сервере, отключились от SSH — процесс продолжает работать

📦

Простота

Одна команда, никаких настроек. Работает на любом Unix-подобном系统 из коробки

🔗

Совместимость

Работает с любой командой: скрипты, бинарники, Python, Node.js — что угодно

Мифы vs Реальность

Развенчиваем популярные заблуждения о nohup

nohup защищает от всех сигналов

Нет — только от SIGHUP. SIGKILL (9) и SIGTERM (15) всё ещё убьют процесс

Только SIGHUP игнорируется

Nohup устанавливает disposition SIGHUP в SIG_IGN. Остальные сигналы работают как обычно

nohup = фоновый режим

Нет — nohup не отправляет процесс в фон. Нужно добавить & для фона

Nohup + & = полный фон

nohup защищает от SIGHUP, а & отправляет в фон. Вместе — полноценный background

nohup лучше tmux/screen

Нет — это разные инструменты. nohup для «запустил и забыл», tmux — для интерактива

Выбор зависит от задачи

nohup — fire-and-forget. tmux/screen — сессии с возвратом. disown — если уже запустили

Nohup vs альтернативы

Сравнение способов запуска фоновых процессов

Функция nohup disown tmux screen
Защита от SIGHUP ✅ Да ✅ Да ✅ Да ✅ Да
Интерактивность ❌ Нет ❌ Нет ✅ Да ✅ Да
Повторное подключение ❌ Нет ❌ Нет ✅ Да ✅ Да
Простота ⭐⭐⭐ ⭐⭐⭐ ⭐⭐ ⭐⭐
Логирование nohup.out Нет В сессии В сессии
Установка Встроен Bash builtin Установка Установка
Лучший для Fire & forget Уже запущен Dev-сессии Legacy сессии

История nohup

Путь от первых Unix до современных серверов

1971 — Unix v1

Первые Unix-системы. Концепция сигналов ещё не сформирована, но идея «не прерывать при отключении» уже существует

1979 — Unix v7

Nohup появляется как отдельная утилита. Сигналы POSIX формализованы. SIGHUP = signal 1

1990-е — POSIX.1

Nohup стандартизирован в POSIX.1-1990. Поведение определено: игнорировать SIGHUP, перенаправить вывод

2000-е — GNU coreutils

Nohup входит в GNU coreutils. Становится доступен на каждом Linux-дистрибутиве по умолчанию

2010-е — Cloud Era

Эра облачных серверов. Nohup + & — стандартный способ запуска долгих задач на VPS и VDS

2020-е — Системный стандарт

Несмотря на systemd и контейнеры, nohup остаётся актуальным для быстрых задач на серверах

Итог: nohup в двух словах

Nohup — это минималистичный, надёжный и POSIX-совместимый способ запустить процесс, который переживёт закрытие терминала. Не заменяет tmux или systemd, но идеален для «запустил и забыл».

— man nohup, POSIX.1-2017
# Запомни эту команду:
nohup ваш-скрипт.sh > log.txt 2>&1 &

# И ваш процесс будет работать вечно 💪

Процесс запущен • SIGHUP проигнорирован • nohup.out пишет логи

Инфографика Qwen Code • Вдохновение StrapmanLab • 2026