session-c3.scope no es un escritorio virtual snap cgroup 22.04 (nomachine)

session-c3.scope no es un escritorio virtual snap cgroup 22.04 (nomachine)

Las aplicaciones instantáneas en Ubuntu cuando se inician en escritorios virtuales nomachine o x2go dan un error y no se ejecutan. Esto se aplica sólo a instantáneas confinadas, que son la mayoría de ellas.

Los escritorios virtuales de nomachine están asociados con el servidor de estación de trabajo de nomachine u otros productos de estilo terminal-server, no con el cliente básico para compartir escritorio de nomachine. No uso x2go pero los usuarios informan problemas idénticos, así que supongo que también comparte un escritorio virtual.

Las soluciones conocidas son alterar el entorno de pruebas instantáneo deshabilitando cgroups v2 o simular manualmente el valor normal de DBUS_SESSION_BUS_ADDRESS. La primera es simple pero dramática ya que cgroups v2 es una gran parte de la experiencia moderna de Linux, y la segunda solución es un truco que puede fallar bajo múltiples usuarios.

No sé por qué DBUS_SESSION_BUS_ADDRESS está mal cuando nomachine o x2go inicia la sesión. Cuando se utilizan estas aplicaciones de acceso remoto para acceder a sesiones de escritorio virtual, no hay ningún inicio de sesión administrado por un administrador de pantalla tradicional. Nomachine inicia sesión por sí mismo y luego inicia la sesión gráfica. Supongo que x2go hace lo mismo. Hay alguna diferencia en las rutas de código que genera un valor inesperado para DBUS_SESSION_BUS_ADDRESS. Supongo que nomachine o x2go no invocan una parte de la lógica de inicio de sesión de systemd. Pero me ha costado entenderlo. Me doy cuenta de que no tengo una idea básica sobre cómo funciona el inicio de sesión en Linux y no puedo encontrar documentación que pueda entender.

(Creo que una sesión de "pantalla compartida" que se conecta a una sesión físicamente presente, como un escritorio sin máquina, no tiene este problema ya que no omite el administrador de pantalla)

Mi experiencia es con nomachine, pero los usuarios de x2go informan el mismo problema y la misma solución también funciona allí.

Con un escritorio virtual nomachine en xubuntu o ubuntu, no puedo iniciar instantáneas confinadas como Firefox (a menos que cgroups v2 esté deshabilitado mediante un parámetro del kernel).

El error cuando se inicia desde una terminal se ve así:

tim@ubuntu ~/Desktop $ firefox /user.slice/user-1000.slice/session-c3.scope no es un grupo de complementos

pero una de las causas fundamentales del problema parece ser que
DBUS_SESSION_BUS_ADDRESS está configurado incorrectamente. Tiene un valor, pero es muy diferente a una sesión normal de administrador de pantalla.

En un inicio de sesión típico de Ubuntu, vemos algo como esto:

DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus

pero en la sesión rota de nomachine, vemos algo como esto:

DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-ELpK0GVRdC,guid=877c270e0667562ac373497b63ebf31c

Si configuro manualmente DBUS_SESSION_BUS_ADDRESS, las instantáneas confinadas funcionan.

Por ejemplo, si en nomachine inicio xfce así:

DefaultDesktopCommand "env
    DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus /usr/bin/startxfce4"

Las instantáneas funcionan.

El problema solo se manifiesta en instantáneas confinadas cuando se ejecuta cgroups v2. Por lo tanto, las instantáneas confinadas y, por lo tanto, la zona de pruebas, también deben ser un factor. Por esta razón, muchos están convencidos de que se trata de un error de snap, pero los desarrolladores de snap, no tanto.

Al observar el valor extraño de DBUS_SESSION_BUS_ADDRESS, llego a la conclusión de que la sesión no se está configurando correctamente. La forma en que ninguna máquina inicia la sesión debe ser diferente a cómo funcionan los administradores de pantalla. DBUS_SESSION_BUS_ADDRESS se configura en el proceso de inicio de sesión de systemd, antes de que comience la sesión gráfica.

La otra posibilidad es que

DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-ELpK0GVRdC,guid=877c270e0667562ac373497b63ebf31c

es un valor perfectamente válido, pero al sandboxing de ese complemento no le gusta (las aplicaciones instantáneas ilimitadas no tienen problemas).

La solución más sencilla es desactivar cgroups v2 y esto es lo que recomienda nomachine.

¿Por qué DBUS_SESSION_BUS es diferente cuando nomachine o x2go inician sesión?

información relacionada