Eu tenho uma máquina Linux em que logon regularmente via ssh (putty) no Windows. Estou executando o servidor X do VcXsrv na área de trabalho do Windows. Uso principalmente isso para executar um depurador (ddd) e o firefox para acessar nosso sistema de revisão de código baseado na Web. É conveniente usar o Firefox Firefox, para que eu possa iniciá-lo a partir de um script. Normalmente inicio isso com "-new-tab" para não continuar criando novas janelas.
Agora eu tenho uma nova máquina Linux de atualização que estou executando ao lado da antiga por enquanto. O que eu notei é um comportamento estranho: quando inicio uma nova sessão do firefox, se já houver uma em execução em qualquer máquina, ela será usada.
O que eu gostaria de fazer ainda é iniciar como uma nova guia, mas apenas sob a instância do firefox da máquina atual, não uma instância de uma máquina diferente que, por acaso, está sendo exibida no mesmo servidor X.
Venho brincando com vários sinalizadores, incluindo -no-remote, -new-instance e também definindo e usando perfis específicos. No entanto, não consegui obter o resultado desejado. Ou recebo o comportamento descrito acima ou recebo um erro dizendo algo como "O Firefox já está em execução, mas não está respondendo, feche-o".
EDIT: Pediram-me para editar isso para fornecer alguns exemplos.
ESTÁ BEM. A seguir, vou me referir a M_OLD e M_NEW. São máquinas separadas executando versões diferentes do Linux com versões diferentes do Firefox (1.5 e 19). Eu me conecto a eles através de um cliente ssh chamado Putty e estou encaminhando o X para um servidor X na área de trabalho do Windows. Há apenas um servidor X envolvido.
Exemplo 1:
Então, da minha sessão de massa para M_OLD, eu corro:
firefox www.google.com &
e da minha sessão de massa M_NEW eu corro:
firefox www.imdb.com &
então eu recebo uma janela do firefox 1.5 com duas guias. Se eu fizer o mesmo no sentido inverso, obtenho o mesmo resultado, mas com o firefox 19. Em outras palavras, como descrito em um comentário abaixo, o primeiro comando lança uma instância do firefox e o segundo simplesmente diz à instância existente para abrir uma nova guia. Mesmo que a instância esteja em outra máquina, desde que seja o mesmo servidor X.
No entanto, eu não quero isso. Eu quero ter instâncias separadas para máquinas separadas. Assim:
Exemplo 2:
Então, da minha sessão de massa para M_OLD, eu corro:
firefox -no-remote www.google.com &
e da minha sessão de massa M_NEW eu corro:
firefox -no-remote www.imdb.com &
Agora eu tenho duas instâncias separadas do firefox. No entanto, se eu executar no M_NEW:
firefox -no-remote www.google.com &
Eu vou pegar
Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.
e mesmo se eu tentar
firefox -no-remote -new-instance www.google.com &
ou apenas
firefox -new-instance www.google.com &
então ainda vou receber o erro.
O que eu realmente quero - e talvez não seja possível - é ter uma instância separada para cada máquina, mas se um novo URL for lançado a partir dessa máquina, ele abrirá uma nova guia. Parece que só posso ter uma instância com novas guias para cada URL ou uma instância por máquina, mas apenas uma de cada vez.
Espero que seja mais claro.
ssh -X
corretamente?
--no-remote
. Você pode editar sua pergunta e nos dizer quando receber a mensagem "O Firefox já está em execução"? A execução firefox -no-remote
deve iniciar uma nova instância do firefox em execução na máquina remota, mas exibida no servidor X local.
-p -no-remote
. Isso permite começar com um novo perfil de FX. Consulte Opções de linha de comando . Para conectar-se o processo de Fx existente você poderia tentar firefox https://www.mozilla.org
oufirefox -remote "openURL(https://www.mozilla.org, new-tab)"