Iniciando programa en el administrador de ventanas

Iniciando programa en el administrador de ventanas

¿Hay alguna manera de iniciar un programa desde una terminal, que no sea un "secundario" del administrador de ventanas (pe XFCE), en un administrador de ventanas?

El programa ejecutado debe desconectarse del terminal (y de mi conexión actual al servidor), para que se mantenga activo después de que se cierre la sesión del terminal.

Un ejemplo sería conectarse vía ssh (sin x-forward o similar) a un servidor, iniciar un navegador, cerrar la conexión. Sentado frente al servidor y usando el navegador abierto recientemente, que aún está ejecutándose. desconectado de mi sesión ssh con un nuevo "propietario", el administrador de ventanas.

Respuesta1

Los métodos habituales para separar un proceso del shell son:

  • ejecútelo en segundo plano usando &, luego solicite al shell que deje de rastrearlo usando disown:

    $ xterm &
    $ disown
    

    (o xterm & disown)

  • ejecútelo en segundo plano usando &y use la nohupherramienta para evitar que se elimine:

    $ nohup xterm &
    
  • ejecútelo en segundo plano usando &y use doble bifurcación para evitar que el shell lo rastree:

    $ (xterm &)
    
  • ejecutar en segundo plano usando setsid:

    $ setsid xterm
    

(Pruebe (setsid xterm &)si algunas opciones no funcionan).

Respuesta2

xterm -e "bash -c \"./script.sh; exec bash\"" &

donde ./script.shpuede haber solo un comando.

Respuesta3

Inicie sesión en la máquina que ejecuta el servidor X con SSH y ejecute:

DISPLAY=:0 xterm &

Debería aparecer un xterm en su pantalla X y debería permanecer abierto incluso cuando cierre la sesión SSH.

Las aplicaciones X11 utilizan la DISPLAYvariable de entorno para encontrar el servidor X; el valor típico es :0, lo que significa que las aplicaciones X11 deben conectarse a un servidor X local a través del socket de dominio Unix /tmp/X11-unix/X0.

Las aplicaciones iniciadas desde una sesión X heredan una DISPLAYvariable de entorno que apunta al servidor X, pero los procesos iniciados fuera de una sesión X (como un inicio de sesión SSH) no tendrán esa variable. Es por eso que debe configurarlo explícitamente al iniciar una aplicación X11 desde un inicio de sesión SSH.

información relacionada