Я сохраняю свой 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