Reparar una entrada de inicio automático de VPN que solo se ejecuta en un escritorio
Un lanzador de VPN que arranca en un escritorio y no en otro es un filtro de la entrada de escritorio, no un fallo del túnel. Lee primero OnlyShowIn, TryExec y la anulación.
El cliente VPN arranca desde el menú de aplicaciones, el túnel se conecta y el icono nunca aparece tras iniciar sesión en un equipo, mientras que el mismo paquete se comporta bien en otro. Tres observaciones se funden en una sola queja: si el programa se lanzó, si su interfaz es visible y si el túnel está activo. El lanzador se rige por una entrada de escritorio con claves de filtrado, y esa entrada no tiene nada que ver con el protocolo VPN. Recorre el manual en orden y detente cuando una de las tres cosas se separe con claridad.
Tres hechos separados: arranque, icono, túnel
Una entrada de escritorio lanza un programa. No puede instalar una implementación de bandeja y no puede hacer que aparezca un indicador en un panel que no admite el protocolo que usa la aplicación. Si el proceso ya se está ejecutando, la pregunta del arranque está respondida y lo que tienes delante es un problema de integración.
El túnel es un tercer hecho. Un icono ausente no es prueba de que la conexión se haya cortado, y matar y reiniciar el cliente para «arreglar» el icono es justo como se interrumpe un túnel que funciona sin motivo alguno. Los usuarios relatan el icono ausente y el túnel roto en la misma frase, y por eso mismo hay que separar ambos sobre el papel.
Sepáralos antes de cambiar nada. Comprueba si el proceso existe, luego si el panel admite el indicador y por último si la interfaz informa de una conexión. Cada respuesta apunta a una capa distinta y a un responsable distinto.
Encuentra la entrada que la sesión lee de verdad
Las entradas de inicio automático viven en el directorio del usuario y en el directorio del sistema, y cuando los nombres de archivo coinciden gana la copia del usuario. Leer la que no toca es el motivo más habitual de que un cambio parezca no tener efecto. Lista ambos directorios antes de editar nada y anota qué archivo cargará realmente la sesión.
ls -l ~/.config/autostart/ /etc/xdg/autostart/ echo "$XDG_CURRENT_DESKTOP" grep -H -E '^(OnlyShowIn|NotShowIn|TryExec|Hidden|Exec)=' ~/.config/autostart/*.desktop /etc/xdg/autostart/*.desktop
La variable de entorno imprime el nombre de sesión con el que se comparan las claves de filtrado, que suele ser una lista separada por dos puntos. Compárala literalmente con los valores de la entrada, porque esos nombres son detalles de configuración sensibles a mayúsculas y no una descripción de la sesión. Un valor GNOME no coincide con gnome, y el silencio resultante no lleva ningún mensaje de error adjunto. Imprímela en lugar de suponerla.
Si el mismo nombre de archivo existe en ambos directorios, la copia del usuario es la que importa. Editar el archivo del sistema y preguntarse por qué no cambió nada es una hora perdida muy habitual.
Lee las claves de filtrado, en orden
La entrada ilustrativa de abajo muestra las claves que deciden si una sesión lanza el programa. Es un fragmento, no un lanzador completo, y los valores pertenecen a una ruta ficticia.
[Desktop Entry] Type=Application Name=Example VPN Exec=/opt/example-vpn/client --minimized TryExec=/opt/example-vpn/client OnlyShowIn=GNOME;
OnlyShowIn restringe la entrada a los entornos enumerados y NotShowIn excluye los enumerados. La especificación no define un comportamiento útil cuando ambos aparecen en una misma entrada, así que trata un archivo que contenga los dos como un defecto y no como una combinación ingeniosa. Elimina la clave que no necesites en lugar de añadir la segunda y confiar en una regla de precedencia.
TryExec pregunta si el ejecutable existe antes de que la sesión lo lance. Por eso una ruta que quedó de una instalación anterior suprime el inicio automático aunque el paquete nuevo funcione al iniciarlo desde el menú, y ese fallo parece exactamente un filtro de escritorio.
Anula a nivel de usuario, no a nivel de sistema
Cuando el filtro es realmente incorrecto para este equipo, copia la entrada del sistema al directorio del usuario y cambia la copia. Según las reglas de inicio automático XDG, una entrada de usuario con el mismo nombre tiene precedencia, y Hidden=true desactiva una entrada sin borrar el archivo del sistema.
mkdir -p ~/.config/autostart cp /etc/xdg/autostart/example-vpn.desktop ~/.config/autostart/ sed -i '/^OnlyShowIn=/d' ~/.config/autostart/example-vpn.desktop desktop-file-validate ~/.config/autostart/example-vpn.desktop
Valida el resultado antes de cerrar la sesión, porque una entrada mal formada se ignora en silencio y la siguiente prueba no te dice nada. Reinstalar el paquete no eliminará tu anulación, que es el objetivo y también el motivo de dejar constancia de que existe. Anota la ruta del archivo en el tique para que la siguiente persona encuentre la anulación en lugar de volver a deducirla.
Prefiere esto a editar lanzadores compartidos del sistema, que cambian el comportamiento de todos los usuarios del equipo y no se pueden revisar de la misma manera. Una anulación a nivel de usuario es visible en un solo lugar, reversible borrando un archivo y fácil de explicar en un tique. El archivo del sistema queda como lo envió el proveedor, así que una actualización del paquete no deshace tu razonamiento en silencio.
Confirma el arranque sin tocar el túnel
Cierra la sesión y vuelve a entrar, luego confirma que el proceso existe antes de mirar el panel. Un arranque correcto y un icono visible son dos resultados distintos, y solo el segundo necesita trabajo de integración con el escritorio. Mezclarlos te lleva a reinstalar un paquete que funcionaba todo el tiempo.
pgrep -af example-vpn systemctl --user status example-vpn.service journalctl --user -b --no-pager | grep -i example-vpn | tail -20
Si el proceso no está, vuelve a leer la entrada por si queda algún filtro o una ruta TryExec obsoleta. Si está, el lanzador funcionó y el icono ausente es un problema aparte con el soporte de indicadores del panel, no con la entrada que acabas de editar.
Anota las tres observaciones en el tique: iniciado, visible, conectado. Ese registro evita que la siguiente persona repita la misma confusión triple y deja claro qué capa aún necesita trabajo.