Iniciando o programa no gerenciador de janelas

0

Existe uma maneira de iniciar um programa a partir de um terminal, que não seja um "filho" do gerenciador de janelas (p.ex. XFCE), em um gerenciador de janelas?

O programa executado deve ser desanexado do terminal (e da minha conexão atual com o servidor), para que ele fique ativo depois que a sessão do terminal for fechada.

Um exemplo seria, conectando via ssh (sem x-forward ou similar) a um servidor, iniciando um navegador, fechando a conexão. Sentado em frente ao servidor e usando o navegador aberto recentemente, que ainda está em execução. desanexado da minha sessão ssh com um novo "proprietário" do gerenciador de janelas.

    
por inselberg 18.07.2014 / 15:40

3 respostas

1

Os métodos usuais de desanexar um processo do shell são:

  • execute em segundo plano usando & , depois peça ao shell para parar de rastreá-lo usando disown :

    $ xterm &
    $ disown
    

    (ou xterm & disown )

  • é executado em segundo plano usando & e usa a ferramenta nohup para evitar que ele seja eliminado:

    $ nohup xterm &
    
  • execute em segundo plano usando & e use o bifurcação dupla para evitar que o shell o acompanhe:

    $ (xterm &)
    
  • executado em segundo plano usando setsid :

    $ setsid xterm
    

(Tente (setsid xterm &) se algumas opções não funcionarem.)

    
por 18.07.2014 / 16:24
1

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

onde ./script.sh pode ser apenas um comando.

    
por 20.07.2014 / 04:21
1

Faça login na máquina que executa o servidor X com o SSH e execute:

DISPLAY=:0 xterm &

Você deve obter um xterm no seu monitor X, e ele deve permanecer aberto mesmo quando você fechar a sessão SSH.

As aplicações X11 usam a variável de ambiente DISPLAY para encontrar o servidor X; o valor típico é :0 , o que significa que os aplicativos X11 devem se conectar a um servidor X local por meio do soquete do domínio Unix /tmp/X11-unix/X0 .

Os aplicativos iniciados a partir de uma sessão X herdam uma variável de ambiente DISPLAY que aponta para o servidor X, mas os processos iniciados fora de uma sessão X (como um login SSH) não terão essa variável. É por isso que você precisa defini-lo explicitamente ao iniciar um aplicativo X11 a partir de um login de SSH.

    
por 25.07.2014 / 08:21