Правило за рестартиране, добавено за един тунел, започва да се прилага към всеки тунел на машината. Това не е дефект на systemd; това е разликата между drop-in на инстанция и drop-in на шаблон. Пътят, под който записвате файла, решава колко услуги ще го наследят.

Изберете обхвата преди настройката. Двете директории изглеждат почти еднакво и само една от тях е ограничена до инстанцията, която имате предвид.

Симптомът: една промяна, всички тунели

Drop-in за конкретна инстанция се намира в директория, наречена на пълната инстанция, например [email protected]. Drop-in за шаблон се намира в [email protected], със знака @ и без име на инстанция между тях. Първият се отнася само до office. Вторият се отнася до всяка услуга, създадена от този шаблон.

Шаблонната форма не достига до отделен шаблон [email protected] и не достига до несвързани услуги с openvpn в името.

Изберете директорията, която отговаря на обхвата

Двете директории са под /etc/systemd/system/. Ако изпуснете последния компонент system, се създава път, който systemd не чете като системно заместване, а това е тих начин да накарате правилно изглеждащ файл да не прави нищо. Запишете пълния път веднъж и го използвайте отново.

Drop-in се нуждае и от правилния заглавен ред на секцията. Настройките на услугата принадлежат под [Service]. Файл с настройки, но без секция, се игнорира или отхвърля, а unit-ът продължава да се държи както преди, докато файлът стои там и изглежда авторитетен.

Дръжте целта в името на файла, ако добавяте повече от един drop-in. Лексикографският ред решава обединяването и име, което казва какво прави файлът, прави този ред четим.

Прочетете обединения unit преди да пишете

Прочетете обединения unit, преди да напишете каквото и да е. systemctl cat [email protected] отпечатва основния unit и всеки приложим drop-in в ред на обединяване. Сравнете го с втора инстанция, когато обмисляте промяна на шаблона. Това сравнение показва точно кои услуги ще наследят промяната.

Файлът на инстанцията не изтрива настройките на шаблона. И двете се обединяват, затова стойност от шаблона, която сте забравили, може все още да е в сила.

Други именувани drop-in файлове, настройки по време на изпълнение и конфигурация от пакети също участват. Не приемайте, че файлът, който редактирахте последен, е целият unit. Обединеният изход е unit-ът.

Дръжте политиката на unit-а извън профила

Дръжте политиката на unit-а и VPN конфигурацията отделно. Директива от профила не става валиден systemd синтаксис, само защото стои под [Service]. Настройка за рестартиране също не принадлежи във файл .ovpn.

Това разделение е и причината правилото за рестартиране да не е същото като OpenVPN собственото възстановяване на партньори. Решете какво поведение искате, преди да изберете обхват.

Приложете и проверете инстанцията

След промяната презаредете дефинициите на мениджъра с systemctl daemon-reload. Това презареждане не рестартира тунела; то само препрочита unit файловете. След това приложете предвиденото действие от жизнения цикъл към точната инстанция.

Проверете, като прочетете отново заредения unit и наблюдавате поведението, което променихте. Рестарт, който носи активна работа, заслужава планирано прекъсване, а не бърз тест на производствен тунел. Запишете целта и обхвата на заместването до разгръщането, за да знае следващият човек дали файлът е бил за споделяне.

Ако политиката наистина е споделена, преместете я умишлено в шаблона и проверете втора инстанция, преди да го обявите за готово.Справочникът за systemd unit документира приоритета на drop-in и реда на обединяване.

Подобни статии