Каталог в / var / run видаляється після жорсткої перезавантаження


19

Я зберігаю свій сфінкс-pid у /var/run/sphinx/searchd.pid, але кожного разу, коли я важко перезавантажую каталог / var / run / shinx зникає, а сфінкс не запускається. Чи є спосіб зробити цей каталог палицею чи створити його автоматично? Як люди зазвичай вирішують цю ситуацію? Я використовую Ubuntu Hardy

ubuntu  pid 

Ви можете дати нам вихід mount?
рекобата

Відповіді:


18

Цей каталог є ефемерним за задумом. Якщо його вміст застряг у чоботях, можуть виникнути всілякі негарні ефекти, оскільки контрольні сценарії різного роду шукають там, щоб побачити, які процеси вони повинні сигналізувати. У останній системі цей тимчасовий характер застосовується шляхом монтажу /var/runяк tmpfs, тоді як старіші системи просто видаляли все з каталогу при запуску.

Тому вам потрібно налаштувати Sphinx або його сценарій запуску, щоб створити цей каталог, або просто записати файл PID /var/runбезпосередньо.


4
+1 для опису / var / run. Але зауважте, що він не хоче, щоб файл PID був стійким під час перезавантаження; просто каталог сфінксів.
Стів Фоллі

15

У вас є як мінімум два шанси:

  • змінити свій сценарій init, щоб зробити mkdir -p /var/run/sphinx/

або

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

Я за другий.


2
І, звичайно, це означає, що сценарій запуску повинен запускатися як root, щоб мати змогу писати безпосередньо в або створювати каталог у / var / run. Що дратує ...
Елофф

Я вибрав і друге рішення. Схоже, для цього є пріоритет (cron, ssh, atd, syslog).
BillMan

2

зараз існує централізований механізм створення тимчасових файлів і каталогів, таких як цей. Служба, яка бажає скористатися цим методом, може видалити команди 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.