![两个功能齐全的配置文件同时运行](https://linux22.com/image/1433702/%E4%B8%A4%E4%B8%AA%E5%8A%9F%E8%83%BD%E9%BD%90%E5%85%A8%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%90%8C%E6%97%B6%E8%BF%90%E8%A1%8C.png)
问题:
是否可以打开两个不同的 Firefox 实例,每个实例运行一个单独的配置文件,并且每次firefox -P <profile name>
运行时它都会连接到运行相同配置文件的已在运行的实例(而不是创建另一个实例)?
我的最终目标是为 Firefox 设置两个不同的图标(一个用于第一个配置文件,一个用于第二个配置文件),并让每个配置文件都像一个完全独立的程序一样运行。换句话说,当我单击任一图标时,我希望它像平常一样运行(当然,使用该配置文件),甚至不承认其他实例/配置文件的存在。当我单击另一个图标时,我希望发生同样的事情:我希望它表现得好像另一个实例/配置文件不存在一样。
研究:
我尝试使用 shell 脚本做一些花哨的事情来让它工作。它会检查是否有具有指定配置文件的正在运行的进程。如果找到,它将运行/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
这应该可以回答您关于运行多个配置文件的问题,我一直都是这么做的。甚至显示了有关将其中一个配置文件设为“默认”配置文件的信息,因此外部链接(例如双击或来自其他应用程序的链接)将仅在该默认配置文件中打开。
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]
您可以使用 -no-remote 打开特定配置文件的快捷方式。例如,要使用 -no-remote 打开名为“我的配置文件”的配置文件,请在 Windows 桌面快捷方式的目标字段中输入以下内容(如果路径不同,请调整路径):
"C:\Program Files\Mozilla Firefox\firefox.exe" -P "My Profile" -no-remote
笔记:您还可以在 Firefox 已运行的情况下打开配置文件管理器,方法是使用 -P -no-remote 而不包含配置文件名称。