Ci scusiamo per la risposta tardiva di 3 anni, mi sono interessato a questo argomento proprio ora e ho trovato questa domanda.
Non ho trovato una soluzione documentata da nessuna parte, quindi ho controllato il codice sorgente e qui è una parte molto rilevante:
http://dxr.mozilla.org/mozilla-central/source/toolkit/xre/nsAppRunner.cpp#1537
Qui, nullptr alla fine della riga purtroppo significa che l'argomento profilo non viene passato alla funzione SendCommandLine, quindi non è possibile selezionare la finestra firefox corretta a cui inviare il messaggio openurl.
Tuttavia, vediamo che il nome utente viene passato e che il nome utente viene intiailizzato dalla variabile d'ambiente LOGNAME. Sulla base di questo, ho trovato la seguente soluzione:
- Ricopro firefox con questo script, chiamato firefox.sh:
FOX_PROFILE = facebook
export LOGNAME = errore. $ FOX_PROFILE
/ opt / firefox / firefox -profile ~ / .mozilla_profiles / $ FOX_PROFILES "$ @"
alla prima esecuzione, avvia una nuova istanza e deve esistere la directory ~ / .mozilla_profiles / facebook,
quando eseguito la seconda volta se il profilo Facebook è già in esecuzione, si collega correttamente ad esso,
può inviare comandi correttamente a più profili in esecuzione diversi (ovviamente è necessario modificare il parametro FOX_PROFILE nella prima riga nei diversi script).
Ho provato questo con Firefox 26 su Linux e funziona.
In alternativa, ecco la mia soluzione a tutti gli effetti che potresti voler o non voler usare:
#! / Bin / bash
set -e
FOX = / opt / firefox / firefox
MESSAGE = $ @
if [-z "$ FOX_PROFILE"]; poi
if [-z "$ {MESSAGE}"]; poi
FOX_PROFILE = default
altro
FOX_PROFILE = $ (kdialog --default default --menu "- $ {MESSAGE} -" default predefinito google google facebook facebook errore errore errore spam spam)
fi
fi
esporta FOX_PROFILE
# Questo hack è necessario, perché l'invio da remoto della riga di comando di Firefox
# ignora il parametro del profilo. Vedi nsAppRunner.cpp: 1505.
export LOGNAME = errore. $ FOX_PROFILE
# Utilizzo dell'esecuzione in background anziché di exec, quindi il comportamento è
# coerente quando il profilo è già in esecuzione e quando è giusto
# cominciando.
$ FOX -profile ~ / .mozilla_profiles / $ FOX_PROFILE "$ @"
# Enorme successo.
uscita 0
Se esegui lo script senza alcun parametro, seleziona automaticamente il profilo predefinito, ma puoi sovrascriverlo impostando manualmente FOX_PROFILE nella shell. Se un URL viene passato nella riga di comando, chiede sempre un profilo in cui aprirlo, questo perché faccio principalmente clic sul mio programma di chat ed e-mail e in quei casi voglio selezionare sempre un profilo (google per il calendario spam, facebook per lo spam di compleanno, ecc.). Ovviamente puoi cambiare la logica per adattarla al tuo stile di utilizzo, questo è solo un esempio, la conoscenza importante è il trucco di LOGNAME.
E ovviamente devi assicurarti che questo script wrapper sia l'unico modo per avviare il browser sul tuo computer. Perché se apri un profilo senza il set LOGNAME corretto, allora non sarai più in grado di comunicare con quel profilo. Ho inserito questo script come il primo nel mio percorso tramite più nomi simbolici, come x-www-browser, firefox, sensible-browser e l'ho inserito anche nella variabile d'ambiente BROWSER. Come fare ciò dipende esattamente dalla tua distribuzione GNU / Linux.