Асобнік 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, калі змяніліся вызначэнні модуляў або ўваходы генератара, потым агледзіце атрыманы стан. Перазагрузка дэмана не штурхае новы профіль у працуючы тунэль, таму дзве праверкі асобныя. Заплануйце перазагрузку і пацвердзіце, што асобнік застаецца адсутным, пакуль патрэбны тунэль яшчэ працуе.

Трымайце стары профіль, пакуль яго ўласнасць не будзе зразумелая, потым выведзіце яго з ужытку прадугледжаным працэсам. Поспех — гэта адсутны модуль і працоўны шлях доступу, а не правалены модуль, якога няма на адным экране.

Падобныя артыкулы