Невозможно выполнить запись в /tmp в службе systemd с PrivateTmp=true

Мой сервис apache2 имеет . При первом запуске службы она работает нормально, но через несколько дней запись в /tmp завершается с ошибкой «нет такого файла или каталога». Для отладки я попробовал запуститьи я это подтвердилсуществует, нопроисходит сбой с сообщением «нет такого файла или каталога». Я бы предпочел не удалятьдиректива.

Если я перезапущу службу, она снова начнет работать.

Строка монтирования для /tmp внутри говорит, что он смонтирован в /dev/nvme0n1, что мне кажется странным, но это имеет место как тогда, когда /tmp работает сразу после запуска службы, так и когда он недоступен для записи.

Кто-нибудь знает, почему /tmp внезапно становится недоступным для записи?

2 ответа

Я нашел проблему.

я имелtmpreaperвключен и настроен для очистки старых файлов и каталогов под/tmp. У меня не было правила исключения для/tmp/systemd-private-*, поэтому tmpreaper удалял частный каталог tmp для apache2.

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

Поскольку ваша проблема возникает только через некоторое время, я могу дать вам следующий совет: убедитесь, что приложение выполняет очистку и не сохраняет большие файлы в виртуальном хранилище.каталог. Насколько я знаю, этот каталог использует ОЗУ, а не постоянную файловую систему. У вас здесь ограниченное пространство.

Возможно, вам захочется на некоторое время зарегистрировать размер каталогов /tmp. Если он продолжает расти, это проблема.

Другие вопросы по тегам