Iets start steeds weer een OpenVPN-unit: vind de bron
Een unit uitschakelen is niet hetzelfde als de activering verwijderen. Lees de instantie, de templatekoppeling en de omgekeerde afhankelijkheden voordat je een profiel verwijdert.
Een OpenVPN-instantie komt bij het opstarten op onder een naam die je niet herkent, en stoppen werkt tot de volgende herstart. Dat patroon betekent dat je het proces hebt verwijderd, maar niet de activering. De twee zijn verschillende objecten, en slechts één ervan is zichtbaar in een statusscherm. De activering vinden kost vier alleen-lezen-opdrachten en één beslissing.
Benoem eerst de exacte unit
Werk vanuit de unitnaam in het journaal in plaats van vanuit een profielbestandsnaam. De instantie kan openvpn@, openvpn-client@, openvpn-server@ of iets distributiespecifieks heten, en de naam raden stuurt je naar de verkeerde template. De statusuitvoer noemt de unit die daadwerkelijk draaide, en dat is de enige naam die hier telt. Kopieer hem exact, inclusief een eventuele suffix.
De volgende opdrachten beschrijven die unit zonder iets te wijzigen. systemctl show meldt het fragmentpad, het bronpad, de status van het unitbestand, eventuele drop-ins en wat hem heeft geactiveerd. list-dependencies --reverse toont welke geladen units naar hem verwijzen. Beide zijn alleen-lezen, dus voer ze uit voordat je een theorie vormt.
Vervang de waargenomen naam overal. Een geplakte voorbeeldnaam is de meest voorkomende manier om de verkeerde dienst te onderzoeken, en hij levert zelfverzekerde antwoorden over een unit die nooit draaide.
Lees de template om de bestandsnaam te leren
Een instantie-unit is een uitbreiding van een template, en de template bepaalt welk configuratiebestand hij leest. Een opdrachtregel die eindigt op een instantiespecifieke plaatsaanduiding, wordt omgezet in de instantienaam plus de suffix. Is de suffix .conf en heet de instantie old, dan is het bestand old.conf. Noem je de instantie old.conf, dan vraagt dezelfde template om old.conf.conf.
Dat detail verklaart een klasse duplicaten. Iemand voegt een tweede instantie toe onder de verkeerde naam, de eerste blijft draaien, en de host eindigt met twee tunnels en één verwarrend log.
Lees de effectieve template in plaats van het bestand waarvan je denkt dat je het hebt bewerkt. Een drop-in kan de opdrachtregel vervangen, en de vervanging is wat er bij het opstarten draait.
Traceer hoe hij in de opstarttransactie terechtkomt
Drie routes zijn gebruikelijk: een wants-koppeling vanaf een target, een vereiste van een andere unit, of een gegenereerde unit van een pakketgenerator. De lijst met omgekeerde afhankelijkheden dekt de eerste twee als geladen graaf-items. Hij dekt geen timer, hook of externe aanvraag, en daarom is de lijst bewijs in plaats van een volledige audit.
Gegenereerde uitvoer onder /run/systemd/generator is een product, geen bron. Bewerken ervan overleeft alleen tot de volgende generatie, en daarom lijkt een daar toegepaste oplossing te werken en draait hij daarna terug.
Controleer de gedocumenteerde invoer van het pakket voordat je aanneemt waar de generator leest. Een ongedocumenteerde scan van een map is de gebruikelijke reden dat een unit verschijnt zonder activeringskoppeling.
Verwijder de activering, niet alleen het proces
Als de instantie direct is geactiveerd en echt verouderd, stopt systemctl disable --now hem en verwijdert de opstartkoppeling in één stap. Controleer eerst of deze tunnel niet je enige administratieve pad naar de host is. De opdracht is een levenscyclusvoorbeeld, geen suggestie om elke VPN op de machine te stoppen. Voer de controle uit vóór de opdracht, niet erna.
De twee helften zijn te scheiden en worden vaak verward. Uitschakelen stopt geen draaiende dienst, en stoppen verwijdert geen activering, dus een gedeeltelijke opdracht verklaart een probleem dat bij het opstarten terugkeert.
Een uitgeschakelde unit kan nog steeds door een andere unit of door een expliciet verzoek worden gestart. Als een generator de activering bezit, repareer dan de invoer van de generator in plaats van zijn uitvoer uit te schakelen. Maskeren blokkeert meer paden maar kan afhankelijkheden breken, dus het is geen vervanging voor begrip.
Verifieer met een herstart, niet met een statusscherm
Herlaad systemd als unitdefinities of generatorinvoer zijn gewijzigd, en inspecteer daarna de resulterende toestand. Een daemon-herlaad duwt geen nieuw profiel in een draaiende tunnel, dus de twee controles staan los van elkaar. Plan een herstart en bevestig dat de instantie afwezig blijft terwijl de bedoelde tunnel nog werkt.
Houd het oude profiel tot het eigenaarschap is begrepen, en zet het daarna buiten gebruik via het bedoelde proces. Succes is een afwezige unit en een werkend toegangspad, niet een mislukte unit die op één scherm ontbreekt.