Ho una macchina Linux a cui accedo regolarmente tramite ssh (putty) da Windows. Sto eseguendo VcXsrv X-server sul mio desktop di Windows. Lo uso principalmente per eseguire un debugger (ddd) e firefox per accedere al nostro sistema di revisione del codice basato sul web. È conveniente usare Linux Firefox in modo da poterlo avviare da uno script. Di solito lancio questo con "-new-tab" per non continuare a creare nuove finestre.
Ora ho un nuovo aggiornamento della macchina Linux che sto correndo accanto a quello vecchio per il momento. Quello che ho notato è un comportamento strano: quando lancio una nuova sessione di Firefox se ce n'è già una in esecuzione su una delle due macchine, la usa.
Quello che mi piacerebbe poter fare è ancora lanciare come una nuova scheda ma solo sotto l'istanza di firefox dalla macchina corrente, non un'istanza di una macchina diversa che viene visualizzata sullo stesso X-server.
Ho giocato con varie bandiere tra cui -no-remote, -new-istanza e anche la definizione e l'utilizzo di profili specifici. Tuttavia, non sono stato in grado di ottenere il risultato desiderato. O ottengo il comportamento che ho descritto sopra o ho un errore che dice qualcosa come "Firefox è già in esecuzione ma non risponde, per favore chiudilo".
EDIT: mi è stato chiesto di modificarlo per fornire alcuni esempi.
OK. Di seguito farò riferimento a M_OLD e M_NEW. Si tratta di macchine separate che eseguono diverse versioni di Linux con diverse versioni di Firefox (1.5 e 19). Mi collego a entrambi tramite un client SSH chiamato Putty e inoltro X a un server X sul desktop di Windows. C'è solo un server X coinvolto.
Esempio 1:
Quindi dalla mia sessione di stucco a M_OLD corro:
firefox www.google.com &
e dalla mia sessione di stucco M_NEW corro:
firefox www.imdb.com &
poi ottengo una finestra di Firefox 1.5 con due schede. Se faccio lo stesso al contrario, ottengo lo stesso risultato ma con Firefox 19. In altre parole, come descritto in un commento qui sotto, il primo comando avvia un'istanza di Firefox, il secondo dice semplicemente all'istanza esistente di aprire una nuova scheda. Anche se l'istanza si trova su un altro computer, purché si tratti dello stesso server X.
Comunque non lo voglio. Voglio avere istanze separate per macchine separate. Così:
Esempio 2:
Quindi dalla mia sessione di stucco a M_OLD corro:
firefox -no-remote www.google.com &
e dalla mia sessione di stucco M_NEW corro:
firefox -no-remote www.imdb.com &
Ora ho due istanze separate di firefox. Tuttavia, se corro su M_NEW:
firefox -no-remote www.google.com &
prenderò
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 anche se ci provo
firefox -no-remote -new-instance www.google.com &
o solo
firefox -new-instance www.google.com &
allora avrò ancora l'errore.
Quello che voglio davvero - e potrebbe non essere possibile - è avere un'istanza separata per ogni macchina ma se un nuovo URL viene lanciato da quella macchina apre una nuova scheda. Sembra che posso avere solo un'istanza con nuove schede per ciascun URL o un'istanza per macchina, ma solo una alla volta.
Spero sia più chiaro.
ssh -X
corretto?
--no-remote
. Potresti modificare la tua domanda e dirci quando viene visualizzato il messaggio "Firefox già in esecuzione"? In esecuzione firefox -no-remote
dovrebbe avviare una nuova istanza di Firefox in esecuzione sul computer remoto ma visualizzata sul server X locale.
-p -no-remote
. Ciò consente di iniziare con un nuovo profilo Fx. Vedi Opzioni della riga di comando . Per connetterti al processo Fx esistente puoi provare firefox https://www.mozilla.org
oppurefirefox -remote "openURL(https://www.mozilla.org, new-tab)"