Чи може почати обробляти символічні посилання для налаштування файлів?


30

Я маю всі мої файли конфігурації upstart під контролем версій. Мій ідеальний спосіб використовувати початковий старт - це створити м'які посилання з мого сховища управління версіями (меркуріальне - не те, що це має значення) в / etc / init, але на початку не вдається побачити завдання. Все добре, якщо я копіюю файли з каталогу сховища в / etc / init.

Хтось знає, чому на початку не вдається обробити символічні або навіть жорсткі посилання?

Спасибі

Кріс


1
Можливо, це було дизайнерське рішення з боку розробників Upstart проігнорувати м'які посилання? У будь-якому випадку, якщо ваше сховище знаходиться на тому ж розділі, що і ви /etc/init, спробуйте скористатися посиланнями.
Стівен, понеділок,

Спробували жорсткі посилання, і це не спрацювало :-(
Кріс МакКолі

Кульгав. Дійсно символьні посилання ігноруються без ручного виклику для перезавантаження конфігурації. Зітхнути. Я вважаю за краще символьні посилання. Очисник у моєму випадку використання. Ну добре. Я просто скопіюю файли, як ривок.
Джеймс Т Снелл

Відповіді:


9

Upstart не підтримує символьні посилання, оскільки вони можуть вказувати на файл на розділі, який не завантажується під час завантаження .

Я обійшов це у власному проекті, поставивши файли conf у / etc / init / myscripts, а потім прив’язавши їх до каталогу у моєму сховищі. mount --bind /etc/init/myscripts ~/code/repo/initscripts.

Додайте це до / etc / fstab, і прив'язка буде стійкою:

/etc/init/myscripts  /home/me/code/repo/initscripts      none    bind

Це ефективно дає вам жорсткі пов'язані каталоги. Upstart буде ставитися до файлів conf як до будь-яких інших, оскільки вони локальні для / etc / init. Ваші DVCS також бачитимуть їх як локальні файли в репо-ренепі, тому він також буде ставитися до них, як і до інших файлів, що зберігаються там. Найкраще з обох світів.


49

Upstart спостерігає за своїми конфігураційними каталогами з ініціативою та перезавантажує конфігурацію, коли будь-який з файлів змінюється або додається новий файл. Мабуть, це не працює для посилань.

Щоб вручну оновити конфігурацію, використовуйте

$ initctl reload-configuration

це для мене надійно працювало. останнім часом на upstart 1.3 він працює лише на зупинених роботах.
jcomeau_ictx

2
Для мене посилання в / etc / init / work, але якщо я зміню файл поза символьним посиланням, файл не перечитується інструментами для запуску. Мені знадобилося кілька годин, щоб з'ясувати, що причина зв'язку є символом. Він діє як кеш, якого ніхто не хоче мати.
peschü

1

Як згадувалося раніше:

initctl reload-configuration

Однак якщо ви отримаєте помилку, наприклад:

initctl: Rejected send message, 1 matched rules; type="method_call", sender=":1.155" (uid=1000 pid=6177 comm="initctl reload-configuration ") interface="com.ubuntu.Upstart0_6" member="ReloadConfiguration" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

Ви повинні викликати судо:

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