Инстанция на OpenVPN се появява при зареждане под име, което не разпознавате, и спирането ѝ работи до следващото рестартиране. Този модел означава, че сте премахнали процеса, но не и активирането. Това са два различни обекта и само един от тях се вижда на екран със състояние. Намирането на активирането изисква четири команди само за четене и едно решение.

Първо назовете точната единица

Започнете от името на единицата в journal, а не от името на файл на профил. Инстанцията може да се казва openvpn@, openvpn-client@, openvpn-server@ или нещо специфично за дистрибуцията, а отгатването на името ви отвежда до грешния шаблон. Изходът за състояние назовава единицата, която действително е работила, и това е единственото име, което има значение тук. Копирайте го точно, включително всеки суфикс.

Следните команди описват тази единица, без да променят нищо. systemctl show отчита пътя на фрагмента, пътя на източника, състоянието на файла на единицата, евентуални drop-in и какво я е активирало. list-dependencies --reverse показва кои заредени единици сочат към нея. И двете са само за четене, затова ги изпълнете, преди да изградите теория.

Заменете наблюдаваното име навсякъде. Копирано примерно име е най-честият начин да разследвате грешната услуга и дава уверени отговори за единица, която никога не е работила.

Прочетете шаблона, за да научите името на файла

Единица с инстанция е разширение на шаблон и шаблонът решава кой конфигурационен файл чете. Команден ред, който завършва със заместител за инстанцията, се разрешава до името на инстанцията плюс суфикса. Ако суфиксът е .conf и инстанцията се казва old, файлът е old.conf. Ако назовете инстанцията old.conf, същият шаблон иска old.conf.conf.

Този детайл обяснява клас от дубликати. Някой добавя втора инстанция под грешно име, първата продължава да работи и хостът остава с два тунела и един объркващ журнал.

Четете ефективния шаблон, а не файла, който помните, че сте редактирали. Drop-in може да замени командния ред и при зареждане работи именно замяната.

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

Три пътя са обичайни: wants връзка от цел, изискване от друга единица или генерирана единица от генератор на пакети. Списъкът на обратните зависимости покрива първите две като заредени записи в графа. Не покрива таймер, hook или външна заявка, затова списъкът е доказателство, а не пълен одит.

Генерираният изход под /run/systemd/generator е продукт, а не източник. Редактирането му оцелява само до следващото генериране, затова поправка, приложена там, изглежда успешна и после се връща.

Проверете документирания вход на пакета, преди да предполагате откъде чете генераторът. Недокументирано сканиране на директория е обичайната причина единица да се появи без връзка за активиране.

Премахнете активирането, а не само процеса

Ако инстанцията е директно активирана и наистина остаряла, systemctl disable --now я спира и премахва връзката за зареждане с една стъпка. Първо проверете дали този тунел не е единственият ви административен път до хоста. Командата е пример за жизнения цикъл, а не предложение да спрете всеки VPN на машината. Изпълнете проверката преди командата, не след нея.

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

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

Проверете с рестартиране, а не с екран за състояние

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

Пазете стария профил, докато собствеността му не бъде разбрана, после го изведете от употреба по предвидения процес. Успехът е липсваща единица и работещ път за достъп, а не провалена единица, липсваща на един екран.

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