Невозможно выполнить запись в /tmp в службе systemd с PrivateTmp=true
Мой сервис apache2 имеет . При первом запуске службы она работает нормально, но через несколько дней запись в /tmp завершается с ошибкой «нет такого файла или каталога». Для отладки я попробовал запустить
Если я перезапущу службу, она снова начнет работать.
Строка монтирования для /tmp внутри говорит, что он смонтирован в /dev/nvme0n1, что мне кажется странным, но это имеет место как тогда, когда /tmp работает сразу после запуска службы, так и когда он недоступен для записи.
Кто-нибудь знает, почему /tmp внезапно становится недоступным для записи?
2 ответа
Я нашел проблему.
я имелtmpreaper
включен и настроен для очистки старых файлов и каталогов под/tmp
. У меня не было правила исключения для/tmp/systemd-private-*
, поэтому tmpreaper удалял частный каталог tmp для apache2.
Как я понимаю
Поскольку ваша проблема возникает только через некоторое время, я могу дать вам следующий совет: убедитесь, что приложение выполняет очистку и не сохраняет большие файлы в виртуальном хранилище.
Возможно, вам захочется на некоторое время зарегистрировать размер каталогов /tmp. Если он продолжает расти, это проблема.