Вопрос:
Можно ли открыть два разных экземпляра Firefox, каждый из которых работает по отдельному профилю, и иметь его таким образом, чтобы при каждом запуске firefox -P <profile name>
он подключался к уже запущенному экземпляру, в котором запущен тот же профиль (вместо создания еще одного пример)?
Моя конечная цель - иметь два разных значка для Firefox (один для первого профиля и один для второго), и каждый профиль должен вести себя как совершенно отдельная программа. Другими словами, когда я нажимаю на любой значок, я хочу, чтобы он вел себя как обычно (используя этот профиль, конечно) и даже не признавал существование другого экземпляра / профиля. Когда я нажимаю на другой значок, я хочу, чтобы произошло то же самое: я хочу, чтобы он вел себя так, как будто другой экземпляр / профиль не существует.
Исследование:
Я попытался сделать что-то необычное с помощью сценария оболочки, чтобы заставить это работать. Проверяет запущенный процесс с указанным профилем. Если он найдет его, он запустит /usr/bin/firefox-bin -P $profile
. Если этого не произойдет, он создаст новый экземпляр, запустив /usr/bin/firefox -new-instance -P $profile
.
$ cat /usr/local/bin/firefox
#!/bin/bash
firefox=/usr/bin/firefox-bin
profile_running() {
ps -Af | grep -v grep | grep firefox | grep -q -- "-P $1"
}
profile=$1
shift
if profile_running $profile; then
$firefox $*
else
$firefox -new-instance -P $profile $*
fi
Теоретически, если я запустил это, у меня должен быть один экземпляр Firefox, работающий с -P first_profile
и один экземпляр Firefox, работающий с -P second_profile
. В первом должно быть открыто три окна, а во втором - два:
/usr/local/bin/firefox first_profile &
/usr/local/bin/firefox second_profile &
/usr/local/bin/firefox first_profile &
/usr/local/bin/firefox second_profile &
/usr/local/bin/firefox first_profile
Однако то, что я обнаружил, на самом деле не то, чего я хочу. Хорошей новостью является то, что в каждом профиле работает ровно один экземпляр. Однако экземпляр "first_profile" будет иметь четыре открытых окна, а экземпляр "second_profile" будет иметь только одно.
Каждый раз, когда я пытаюсь открыть новое окно "second_profile" после исходного, я получаю новое окно "first_profile". Похоже, что Firefox не потрудился проверить параметр -P
если он подключается к уже запущенному экземпляру.
Заключение:
Поскольку, похоже, нет никакого способа заставить Firefox вести себя так, как я хочу, используя только аргументы командной строки, мне нужно найти другой порядок действий.
Я использую Firefox 33.0 (бинарный пакет) в Gentoo Linux (amd64).