SystemdDoctor
RuntimeDirectory= [Service]

RuntimeDirectory=: каталог службы в /run

Создаёт каталог в /run на время работы службы. При остановке systemd его удаляет вместе с содержимым, если не указано иное.

Что делает

Каталог в /run — правильное место для сокетов и pid-файлов: это временная файловая система в памяти, она очищается при перезагрузке, и права там всегда предсказуемы. Создавать его вручную не нужно и вредно: после перезагрузки он исчезнет, а служба этого не ожидает.

Удаление при остановке иногда мешает: если в каталоге лежит что-то нужное между перезапусками, поставьте RuntimeDirectoryPreserve=restart.

Где ставится. В секции [Service]. Значение — имя каталога без пути.

Значения

ЗначениеЧто происходит
RuntimeDirectory=myappсоздаст /run/myapp.
RuntimeDirectoryMode=0750права на каталог.
RuntimeDirectoryPreserve=restartсохранять содержимое при перезапуске.
RuntimeDirectoryPreserve=yesне удалять до перезагрузки машины.

Пример

Служба с unix-сокетом для веб-сервера.

[Service]
User=app
Group=www-data
RuntimeDirectory=myapp
RuntimeDirectoryMode=0750
ExecStart=/usr/local/bin/myapp --socket /run/myapp/app.sock

Группа выбрана так, чтобы веб-сервер мог писать в сокет. Права 0750 при этом остаются узкими.

Типичные ошибки

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

По умолчанию содержимое удаляется при остановке — pid-файлы и сокеты не переживают перезапуск.

Полный путь в значении недопустим: только имя.

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

Рядом стоящие параметры

Где важен на практике

Источники

  • systemd.exec(5) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026