2

Вопрос:

Можно ли открыть два разных экземпляра 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).

1 ответ1

2

Это должно ответить на ваши вопросы о запуске нескольких профилей, я делаю это все время. Даже показывает информацию о том, что один из них является профилем по умолчанию, поэтому внешние ссылки (например, двойной щелчок или из других приложений) будут открываться только в этом профиле по умолчанию.

http://kb.mozillazine.org/Opening_a_new_instance_of_your_Mozilla_application_with_another_profile

Это коротко, поэтому я просто вставлю это:

Когда Firefox запущен и вы пытаетесь открыть другой процесс Firefox, вместо этого открывается новое окно в уже запущенном процессе. Вы можете использовать опцию командной строки -no-remote для запуска нового процесса Firefox, который невидим для первого процесса. [1] Используя -no-remote вместе с опцией -P для выбора другого профиля, вы можете одновременно открывать несколько экземпляров Firefox, используя отдельные профили. [2] Выбор другого профиля из того, который использовался в первом процессе, необходим, потому что профили "заблокированы" при использовании.

Важно: Никогда не используйте -no-remote, чтобы запустить профиль "по умолчанию" (тот, который настроен на открытие без запроса при запуске Firefox). Это потому, что когда вы запускаете Firefox, например, нажав ссылку в своей почтовой программе, вы увидите, что Firefox уже запущен, но не отвечает на сообщение, если профиль по умолчанию уже используется. Решение состоит в том, чтобы всегда запускать профиль по умолчанию в обычном режиме и запускать все остальные с помощью -no-remote. Тогда это будет работать. [3]

Вы можете использовать ярлык для определенного профиля, чтобы открыть Firefox с помощью -no-remote. Например, чтобы открыть профиль с именем "Мой профиль" с помощью -no-remote, введите в поле "Цель" ярлыка на рабочем столе Windows следующее (измените путь, если он другой):

"C:\Program Files\Mozilla Firefox\firefox.exe" -P "My Profile" -no-remote

Примечание . Вы также можете открыть Диспетчер профилей с уже запущенным Firefox, используя -P -no-remote без указания имени профиля.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .