3 yıllık geç cevap için özür dilerim, şimdi bu konuyla ilgilenmeye başladım ve bu soruyu buldum.
Hiçbir yerde belgelenmiş bir çözüm bulamadım, bu yüzden kaynak kodunu kontrol ettim ve burada çok ilgili bir bölüm var:
http://dxr.mozilla.org/mozilla-central/source/toolkit/xre/nsAppRunner.cpp#1537
Burada, satırın sonundaki nullptr maalesef profil bağımsız değişkeninin SendCommandLine işlevine iletilmediğini gösterir, bu nedenle openurl iletisini göndermek için doğru firefox penceresini seçmek mümkün değildir.
Ancak, kullanıcı adının iletildiğini ve kullanıcı adının LOGNAME ortam değişkeninden sindirildiğini görüyoruz. Buna dayanarak, aşağıdaki çözümü buldum:
- Firefox.sh adlı bu komut dosyasıyla firefox'u sararım:
FOX_PROFILE = dinle
verme LOGNAME = hata. $ FOX_PROFILE
/ opt / firefox / firefox -profile ~ / .mozilla_profiles / $ FOX_PROFILES "$ @"
ilk çalıştırıldığında, yeni bir örnek başlatır ve ~ / .mozilla_profiles / facebook dizininin bulunması gerekir,
facebook profili zaten çalışıyorsa ikinci kez çalıştırıldığında, doğru bir şekilde bağlanır,
komutları birden çok farklı çalışan profile doğru gönderebilir (elbette farklı komut dosyalarının ilk satırındaki FOX_PROFILE parametresini değiştirmeniz gerekir).
Bunu Linux'ta Firefox 26 ile test ettim ve işe yarıyor.
Alternatif olarak, kullanmak isteyebileceğiniz veya istemeyeceğiniz tam teşekküllü çözümüm:
#! / Bin / bash
set -e
FOX = / opt / firefox / firefox
MESAJ = $ @
eğer [-z "$ FOX_PROFILE"]; sonra
eğer [-z "$ {MESSAGE}"]; sonra
FOX_PROFILE = Varsayılan
Başka
FOX_PROFILE = $ (kdialog - varsayılan varsayılan --menu "- $ {MESSAGE} -" varsayılan varsayılan google google facebook facebook errge errge spam spam)
fi
fi
FOX_PROFILE dosyasını dışa aktar
# Bu kesmek gereklidir, çünkü firefox uzaktan komut satırı gönderme
# profile parametresini yok sayar. Bkz. NsAppRunner.cpp: 1505.
verme LOGNAME = hata. $ FOX_PROFILE
# Exec yerine arka plan yürütme kullanıldığında, davranış
# profil zaten çalışıyorken ve sadece
# başlıyor.
$ FOX -profile ~ / .mozilla_profiles / $ FOX_PROFILE "$ @"
# Büyük başarı.
çıkış 0
Komut dosyasını herhangi bir parametre olmadan çalıştırırsanız, varsayılan profili otomatik olarak seçer, ancak kabuğunuzda elle FOX_PROFILE ayarlayarak geçersiz kılabilirsiniz. Komut satırına bir URL iletilirse, her zaman onu açmak için bir profil ister, bunun nedeni çoğunlukla sohbet ve e-posta programımdan tıkladığım ve bu durumda her zaman bir profil seçmek istiyorum (takvim için google spam, doğum günü spamları için facebook vb.). Tabii ki mantığı kullanım tarzınıza uyacak şekilde değiştirebilirsiniz, bu sadece bir örnektir, önemli bilgi LOGNAME hilesi.
Ve elbette, bu sarmalayıcı komut dosyasının makinenizdeki tarayıcıyı başlatmanın tek yolu olduğundan emin olmalısınız. Çünkü doğru LOGNAME ayarı olmadan bir profil açarsanız, o profille artık iletişim kuramazsınız. Bu betiği yolumda ilk olarak x-www-tarayıcı, firefox, mantıklı tarayıcı gibi birden fazla sembolik isimle koydum ve BROWSER ortam değişkenine de koydum. Bunun nasıl yapılacağı tam olarak GNU / Linux dağıtımınıza bağlıdır.