Una instància d'OpenVPN apareix en arrencar amb un nom que no reconeixes, i aturar-la funciona fins al proper reinici. Aquest patró vol dir que has eliminat el procés però no l'activació. Són dos objectes diferents, i només un d'ells és visible en una pantalla d'estat. Trobar l'activació requereix quatre ordres de només lectura i una decisió.

Anomena primer la unitat exacta

Parteix del nom de la unitat al journal, no del nom d'un fitxer de perfil. La instància es pot dir openvpn@, openvpn-client@, openvpn-server@ o alguna cosa específica de la distribució, i endevinar el nom et porta a la plantilla equivocada. La sortida d'estat anomena la unitat que realment va córrer, i aquest és l'únic nom que importa aquí. Copia'l exactament, incloent-hi qualsevol sufix.

Les ordres següents descriuen aquesta unitat sense canviar res. systemctl show informa de la ruta del fragment, la ruta d'origen, l'estat del fitxer d'unitat, els possibles drop-ins i què la va activar. list-dependencies --reverse mostra quines unitats carregades hi apunten. Totes dues són de només lectura, així que executa-les abans de formar una teoria.

Substitueix el nom observat a tot arreu. Un nom d'exemple enganxat és la manera més habitual d'investigar el servei equivocat, i produeix respostes segures sobre una unitat que mai va córrer.

Llegeix la plantilla per saber el nom del fitxer

Una unitat d'instància és una expansió d'una plantilla, i la plantilla decideix quin fitxer de configuració llegeix. Una línia d'ordres que acaba en un marcador de posició per instància es resol al nom de la instància més el sufix. Si el sufix és .conf i la instància es diu old, el fitxer és old.conf. Si anomenes la instància old.conf, la mateixa plantilla demana old.conf.conf.

Aquest detall explica una classe de duplicats. Algú afegeix una segona instància amb el nom equivocat, la primera continua corrent, i l'amfitrió acaba amb dos túnels i un registre confús.

Llegeix la plantilla efectiva en lloc del fitxer que recordes haver editat. Un drop-in pot substituir la línia d'ordres, i la substitució és el que s'executa en arrencar.

Ressegueix com entra a la transacció d'arrencada

Tres camins són habituals: un enllaç wants des d'un target, un requisit d'una altra unitat o una unitat generada per un generador de paquets. El llistat de dependències inverses cobreix els dos primers com a entrades carregades del graf. No cobreix un temporitzador, un hook ni una petició externa, i per això el llistat és una prova i no una auditoria completa.

La sortida generada sota /run/systemd/generator és un producte, no una font. Editar-la només sobreviu fins a la propera generació, i per això una correcció aplicada allà sembla reeixida i després reverteix.

Comprova l'entrada documentada del paquet abans de suposar d'on llegeix el generador. Un escaneig no documentat d'un directori és la raó habitual perquè una unitat aparegui sense un enllaç d'activació.

Elimina l'activació, no només el procés

Si la instància està activada directament i és realment obsoleta, systemctl disable --now l'atura i elimina l'enllaç d'arrencada en un sol pas. Comprova primer que aquest túnel no sigui l'únic camí administratiu cap a l'amfitrió. L'ordre és un exemple de cicle de vida, no un suggeriment d'aturar cada VPN de la màquina. Fes la comprovació abans de l'ordre, no després.

Les dues meitats són separables i sovint es confonen. Desactivar no atura un servei en marxa, i aturar no elimina l'activació, així que una ordre parcial explica un problema que torna en arrencar.

Una unitat desactivada encara es pot iniciar per una altra unitat o per una petició explícita. Quan un generador posseeix l'activació, corregeix l'entrada del generador en lloc de desactivar-ne la sortida. L'emmascarament bloqueja més camins però pot trencar dependències, així que no substitueix la comprensió.

Verifica amb un reinici, no amb una pantalla d'estat

Recarrega systemd si han canviat les definicions d'unitat o les entrades del generador, i després inspecciona l'estat resultant. Una recàrrega del dimoni no empeny un perfil nou dins d'un túnel en marxa, així que les dues comprovacions són separades. Programa un reinici i confirma que la instància continua absent mentre el túnel previst encara funciona.

Mantén el perfil antic fins que s'entengui la seva propietat, i retira'l després pel procés previst. L'èxit és una unitat absent i un camí d'accés funcional, no una unitat fallida que falta en una pantalla.

Articles relacionats