SystemdDoctor
служба не работает redis type частое

Redis: служба сразу останавливается из-за daemonize yes

Если в конфигурации Redis включена демонизация, исходный процесс завершается сразу после создания дочернего. systemd видит успешный выход и переводит службу в состояние inactive (dead) — без ошибок и без работающего Redis.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. В конфигурации включена демонизация

    Настройка перенесена из старого руководства или с машины без systemd. С Type=notify или simple она несовместима.

  2. Тип службы не соответствует поведению

    Если демонизацию убрать нельзя, systemd должен знать об уходе в фон: тогда нужен Type=forking и файл с номером процесса.

  3. В конфигурации задан supervised auto при неверном типе

    Redis умеет сообщать systemd о готовности при supervised systemd. Если этот режим выключен, а тип службы notify, запуск закончится таймаутом.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Состояние и код: при конфликте видно inactive (dead) с нулевым кодом.

systemctl status redis-server --no-pager -l | head -10

Три настройки, определяющие совместимость с systemd.

grep -E "^(daemonize|supervised|pidfile)" /etc/redis/redis.conf

Работает ли Redis на самом деле.

redis-cli ping

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. В конфигурации включена демонизация
Почему происходит
Настройка перенесена из старого руководства или с машины без systemd. С Type=notify или simple она несовместима.
Как проверить
Посмотрите настройку и тип службы.
grep -E "^daemonize" /etc/redis/redis.conf
systemctl show redis-server -p Type
Как исправить
Отключите демонизацию: процессом должен управлять systemd.
sudo sed -i "s/^daemonize yes/daemonize no/" /etc/redis/redis.conf && sudo systemctl restart redis-server
2. Тип службы не соответствует поведению
Почему происходит
Если демонизацию убрать нельзя, systemd должен знать об уходе в фон: тогда нужен Type=forking и файл с номером процесса.
Как проверить
Посмотрите тип и наличие файла номера процесса.
systemctl show redis-server -p Type -p PIDFile
grep -E "^pidfile" /etc/redis/redis.conf
Как исправить
Либо daemonize no с типом notify, либо daemonize yes с типом forking и совпадающим путём файла номера процесса.
3. В конфигурации задан supervised auto при неверном типе
Почему происходит
Redis умеет сообщать systemd о готовности при supervised systemd. Если этот режим выключен, а тип службы notify, запуск закончится таймаутом.
Как проверить
Посмотрите настройку надзора.
grep -E "^supervised" /etc/redis/redis.conf
Как исправить
Поставьте supervised systemd при Type=notify — тогда Redis сообщит о готовности сам.

Пример вывода

Служба «успешно» завершилась, Redis не работает. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

○ redis-server.service - Advanced key-value store
     Active: inactive (dead) since Mon 2026-09-15 13:02:41 MSK; 5s ago
    Process: 4100 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)

systemd[1]: redis-server.service: Deactivated successfully.

Связанные ошибки

Где встречается чаще всего

Источники

  • Документация Redis: настройка документация программы
    сверено 15 сентября 2026
  • systemd.service(5)
    Type=notify, forking и демонизация.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено с daemonize yes при Type=notify.
    собственная проверка, systemd 255
    сверено 15 сентября 2026