Något startar hela tiden en OpenVPN-unit: hitta källan
Att inaktivera en unit är inte samma sak som att ta bort dess aktivering. Läs instansen, mallmappningen och de omvända beroendena innan du raderar en profil.
En OpenVPN-instans dyker upp vid start under ett namn du inte känner igen, och att stoppa den fungerar till nästa omstart. Det mönstret betyder att du har tagit bort processen men inte aktiveringen. De två är olika objekt, och bara ett av dem syns i en statusskärm. Att hitta aktiveringen kräver fyra skrivskyddade kommandon och ett beslut.
Namnge den exakta uniten först
Arbeta utifrån unitnamnet i journalen i stället för från ett profilfilnamn. Instansen kan heta openvpn@, openvpn-client@, openvpn-server@ eller något distributionsspecifikt, och att gissa namnet skickar dig till fel mall. Statusutdata namnger den unit som faktiskt körde, och det är det enda namn som spelar roll här. Kopiera det exakt, inklusive eventuellt suffix.
Följande kommandon beskriver den uniten utan att ändra något. systemctl show rapporterar fragmentvägen, källvägen, unit-filens tillstånd, eventuella drop-ins och vad som utlöste den. list-dependencies --reverse visar vilka inlästa units som pekar på den. Båda är skrivskyddade, så kör dem innan du bildar en teori.
Byt ut det observerade namnet överallt. Ett kopierat exempelnamn är det vanligaste sättet att undersöka fel tjänst, och det ger självsäkra svar om en unit som aldrig körde.
Läs mallen för att lära dig filnamnet
En instans-unit är en expandering av en mall, och mallen avgör vilken konfigurationsfil den läser. En kommandorad som slutar i en instansspecifik platshållare löses upp till instansnamnet plus suffixet. Om suffixet är .conf och instansen heter old är filen old.conf. Kallar du instansen old.conf ber samma mall om old.conf.conf.
Den detaljen förklarar en klass av dubbletter. Någon lägger till en andra instans under fel namn, den första fortsätter köra, och värden slutar med två tunnlar och en förvirrande logg.
Läs den effektiva mallen i stället för filen du minns att du redigerade. En drop-in kan ersätta kommandoraden, och ersättningen är det som körs vid start.
Spåra hur den kommer in i starttransaktionen
Tre vägar är vanliga: en wants-länk från ett target, ett krav från en annan unit eller en genererad unit från en paketgenerator. Listan över omvända beroenden täcker de två första som inlästa grafelement. Den täcker inte en timer, en hook eller en extern begäran, och därför är listan bevis snarare än en fullständig granskning.
Genererad utdata under /run/systemd/generator är en produkt, inte en källa. Att redigera den överlever bara till nästa generering, och därför ser en rättelse där lyckad ut och faller sedan tillbaka.
Kontrollera paketets dokumenterade indata innan du antar var generatorn läser från. En odokumenterad genomsökning av en katalog är det vanliga skälet till att en unit dyker upp utan aktiveringslänk.
Ta bort aktiveringen, inte bara processen
Om instansen är direkt aktiverad och verkligen föråldrad stoppar systemctl disable --now den och tar bort startlänken i ett steg. Kontrollera först att den här tunneln inte är din enda administrativa väg till värden. Kommandot är ett livscykelexempel, inte en uppmaning att stoppa varje VPN på maskinen. Kör kontrollen före kommandot, inte efter.
De två halvorna går att skilja åt och blandas ofta ihop. Att inaktivera stoppar inte en körande tjänst, och att stoppa tar inte bort aktivering, så ett delvis kommando förklarar ett problem som återkommer vid start.
En inaktiverad unit kan fortfarande startas av en annan unit eller av en uttrycklig begäran. När en generator äger aktiveringen, rätta generatorns indata i stället för att inaktivera dess utdata. Maskning blockerar fler vägar men kan bryta beroenden, så det ersätter inte förståelse.
Verifiera med en omstart, inte med en statusskärm
Ladda om systemd om unitdefinitioner eller generatorindata har ändrats, och granska sedan det resulterande tillståndet. En daemon-omladdning skjuter inte in en ny profil i en körande tunnel, så de två kontrollerna är åtskilda. Schemalägg en omstart och bekräfta att instansen förblir borta medan den avsedda tunneln fortfarande fungerar.
Behåll den gamla profilen tills ägandet är förstått, och avveckla den sedan genom den avsedda processen. Framgång är en frånvarande unit och en fungerande åtkomstväg, inte en misslyckad unit som saknas på en skärm.