Назад | Перейти на главную страницу

Каталог в / var / run удаляется после жесткой перезагрузки

Я сохраняю свой pid sphinx в /var/run/sphinx/searchd.pid, но каждый раз, когда я сильно перезагружаю каталог / var / run / sphinx, он исчезает, и sphinx не запускается. Есть ли способ закрепить этот каталог или создать его автоматически? Как люди обычно справляются с этой ситуацией? Я использую Ubuntu Hardy

Этот каталог недолговечен по замыслу. Если его содержимое застревает при загрузке, могут возникнуть всевозможные уродливые эффекты, поскольку сценарии управления различного типа заглядывают туда, чтобы увидеть, какие процессы они должны сигнализировать. В современной системе этот временный характер усиливается установкой /var/run так как tmpfs, в то время как старые системы просто удаляли все в каталоге при запуске.

Следовательно, вам необходимо настроить Sphinx или его сценарий запуска для создания этого каталога или просто записать файл PID в /var/run прямо.

У вас есть как минимум два шанса:

  • измените свой сценарий инициализации, чтобы mkdir -p /var/run/sphinx/

или

  • устанавливать pid_file = /var/run/sphinx-searchd.pid в /etc/sphinx.conf

Я за второй.

теперь существует централизованный механизм для создания временных файлов и каталогов, подобных этим. Служба, желающая использовать этот метод, может удалить команды mkdir в своем собственном сценарии запуска и вместо этого поместить файл .conf в /etc/tmpfiles.d, /run/tmpfiles.d или /usr/lib/tmpfiles.d с Ubuntu службы, похоже, предпочитают последний вариант. для вашего дела создайте файл /usr/lib/tmpfiles.d/sphinx.conf.
содержимое файла будет:
d /var/run/sphinx 0755 root root

Вот d обозначает каталог, рядом с ним путь, разрешение, владелец и группа.
Это создаст /var/run/sphnix каталог при перезагрузке.

Ознакомьтесь с полной документацией tmpfiles.d