hostprofi.ru
Подобрать хостинг
Термин·буква B

Background-процесс

краткое определение

Background-процесс (фоновый процесс) — программа, работающая на сервере без привязки к терминальной сессии пользователя. Выполняет задачи параллельно с основной работой сервера: cron-задания, демоны, воркеры очередей.

Background-процесс (фоновый процесс, daemon) — программа, запущенная в операционной системе без интерактивного взаимодействия с пользователем. Не привязан к терминальной сессии, не имеет управляющего терминала (контролирующего TTY) и продолжает работу после выхода пользователя из системы. На типичном Linux-сервере одновременно работают десятки фоновых процессов: веб-сервер, интерпретатор PHP, СУБД, SSH-сервер, планировщик задач.

Как работает

В Unix/Linux демоны создаются через daemonization — процесс отсоединения от управляющего терминала. Классический метод: процесс вызывает fork() (создаёт дочерний процесс), родительский завершается, дочерний вызывает setsid() (создаёт новую сессию без управляющего терминала) и переходит в корневую директорию. Современные демоны используют systemd, который управляет всем жизненным циклом.

systemd (System and Service Manager) — менеджер служб Linux, запускается как первый процесс с PID 1 при старте системы. Управляет фоновыми процессами через unit-файлы (/etc/systemd/system/). Ключевые команды: systemctl start/stop/restart/status имя, systemctl enable имя (запуск при старте системы), journalctl -u имя (просмотр логов). При сбое службы systemd перезапускает её согласно политике Restart (always, on-failure).

Запуск процесса в фоне вручную: команда & — запускает в фоне текущей сессии (завершится с выходом пользователя), nohup команда & — защита от HUP-сигнала при выходе, screen или tmux — мультиплексоры терминала с сохранением сессии. Для production лучше оформить процесс как systemd-службу.

Cron — планировщик фоновых задач. Демон crond читает crontab-файлы и запускает команды по расписанию. Формат: минута, час, день, месяц, день недели, команда. Пример: 0 2 * * * /opt/backup.sh — запускать скрипт резервного копирования каждую ночь в 2:00. Systemd timer — современная альтернатива cron с лучшим логированием и зависимостями между задачами.

История

Концепция демонов (daemon) появилась в Multics (1960-е) и была унаследована Unix (1969). Название «daemon» выбрали разработчики MIT со ссылкой на духов-помощников из греческой мифологии — незримых посредников, выполняющих задачи в фоне. BSD Unix в 1970-х стандартизировал набор системных демонов (inetd, cron, syslogd). SysV init (AT&T Unix System V, 1983) ввёл скрипты инициализации для управления демонами. Upstart (Ubuntu, 2006) предложил event-based управление службами. systemd создал Леннарт Пёттеринг в 2010 году; к 2015-му стал стандартом для большинства дистрибутивов Linux.

Типы фоновых процессов в хостинге

  • Веб-сервер (nginx, Apache) — принимает HTTP-запросы.
  • PHP-FPM — пул PHP-воркеров для обработки запросов.
  • СУБД (MySQL, PostgreSQL) — база данных.
  • Воркеры очередей (Laravel Queue Worker, Celery, Sidekiq) — обрабатывают задачи из очереди.
  • Cron-задания — бэкапы, генерация ситемапов, очистка кеша по расписанию.
  • Агенты мониторинга (Prometheus Node Exporter, Metricbeat) — собирают метрики.

На что обращать внимание

Фоновые процессы потребляют ресурсы VPS, даже когда простаивают. Проверяйте список процессов через ps aux или htop и выключайте неиспользуемые службы (systemctl disable --now служба). Настройте ограничения ресурсов для критичных служб через systemd resource control: параметр MemoryMax предотвращает утечку памяти одним процессом от остановки всего сервера. Используйте systemctl enable для автозапуска служб после ребута.

Фоновые процессы запускаются через systemd-сервисы или таймеры. Redis используется как брокер для очередей задач. Celery (Python) и Sidekiq (Ruby) управляют фоновыми задачами. Мониторинг через Netdata. Логирование через ELK Stack.

Другие термины