systemd — persistent override для unit файлов#

Нужно, чтобы изменить отдельные параметры unit файла, не заменяя файл целиком. Изменения сохраняются при обновлении, удалении и переустановке пакетов (и ОС). Плюс такого подхода очевиден, например, когда в системный unit файл при обновлении добавляются новые параметры.

Note

Порядок действий продемонстрируем на примере изменения расположения кластера БД PostgreSQL.

Для создания постоянного переопределения (persistent override) выполняем:

sudo systemctl edit postgresql.service

В открывшемся редакторе вводим:

[Service]
Environment=PGDATA=/mnt/storage/pgsql/data

где /mnt/storage/pgsql/data — новое расположение кластера БД.

В результате создаётся файл /etc/systemd/system/postgresql.service.d/override.conf, который переопределяет только указанные нами параметры стандартного unit-файла. При обновлении пакетов, переустановке и т.п. данный файл сохраняется.

Hint

Дефолтный unit-файл находится в /usr/lib/systemd/system/postgresql.service. Редактировать его, как вы знаете, не следует.