Unha política de reinicio engadida para un túnel comeza a aplicarse a todos os túneles da máquina. Non é un fallo de systemd; é a diferenza entre un drop-in de instancia e un drop-in de plantilla. A ruta baixo a que escribes o ficheiro decide cantos servizos o herdan.

Escolle o alcance antes da configuración. Os dous directorios parecen case idénticos, e só un deles está limitado á instancia que querías.

O síntoma: unha edición, todos os túneles

Un drop-in específico de instancia vive baixo un directorio nomeado coa instancia completa, como [email protected]. Un drop-in de plantilla vive baixo [email protected], co signo @ e ningún nome de instancia no medio. O primeiro aplícase só a office. O segundo aplícase a cada servizo instanciado a partir desa plantilla.

A forma de plantilla non alcanza unha plantilla [email protected] separada nin alcanza servizos non relacionados con openvpn no nome.

Escolle o directorio que coincide co alcance

Os dous directorios están baixo /etc/systemd/system/. Se omites o último compoñente system, creas unha ruta que systemd non le como unha anulación do sistema, e esa é unha forma silenciosa de facer que un ficheiro de aspecto correcto non faga nada. Escribe a ruta completa unha vez e reutilízaa.

Un drop-in tamén necesita o encabezado de sección correcto. A configuración do servizo vai baixo [Service]. Un ficheiro con axustes pero sen sección ignórase ou réxase, e a unidade segue comportándose como antes mentres o ficheiro está alí con aspecto de autoridade.

Mantén o propósito no nome do ficheiro se engades máis dun drop-in. A orde lexicográfica decide a fusión, e un nome que di que fai o ficheiro fai lexible esa orde.

Le a unidade fusionada antes de escribir

Le a unidade fusionada antes de escribir nada. systemctl cat [email protected] imprime a unidade principal e cada drop-in que se aplica, en orde de fusión. Compáraa cunha segunda instancia cando esteas a considerar un cambio de plantilla. Esa comparación mostra exactamente que servizos herdarían a edición.

Un ficheiro de instancia non borra a configuración da plantilla. Ambos se fusionan, así que un valor de plantilla que esqueciches pode seguir vixente.

Tamén participan outros drop-ins con nome, axustes de tempo de execución e configuración fornecida por paquetes. Non supoñas que o ficheiro que editaches por última vez é toda a unidade. A saída fusionada é a unidade.

Mantén a política da unidade fóra do perfil

Mantén separadas a política da unidade e a configuración de VPN. Unha directiva de perfil non se converte en sintaxe válida de systemd por estar baixo [Service]. Un axuste de reinicio tampouco pertence a un ficheiro .ovpn.

Esa separación é tamén a razón pola que unha política de reinicio non é o mesmo que a recuperación de pares que OpenVPN fai por si mesmo. Decide que comportamento queres antes de escoller un alcance.

Aplícao e verifica a instancia

Despois do cambio, recarga as definicións do xestor con systemctl daemon-reload. Esa recarga non reinicia o túnel; só volve ler os ficheiros de unidade. Despois aplica a acción de ciclo de vida que pretendías á instancia exacta.

Verifica lendo de novo a unidade cargada e observando o comportamento que cambiaches. Un reinicio que leva traballo activo merece unha interrupción planificada, non unha proba rápida nun túnel de produción. Anota o propósito e o alcance da anulación xunto ao despregamento para que a seguinte persoa saiba se o ficheiro debía compartirse.

Se a política é realmente compartida, móvea deliberadamente á plantilla e comproba unha segunda instancia antes de dala por feita. A referencia de unidades de systemd documenta a precedencia dos drop-ins e a orde de fusión.

Artigos relacionados