我们有一个作为后台 html 到 pdf 转换器运行的 xulrunner 应用程序。这本质上是一个命令行应用程序,不显示任何用户界面。但是,xulrunner 默认尝试共享应用程序的配置文件和实例。我们如何在不触发配置文件锁定等情况下同时运行应用程序的多个实例?
3 回答
似乎有效的方法(虽然它很慢而且相当浪费)是为每次调用创建一个新的配置文件,并在终止后清理它: xulrunner -profile $tempdir -no-remote application.ini ... rm -fr $tempdir
如果您的应用程序不需要任何 UI(只需 XPCom),我强烈建议您使用 xpcshell(构建您自己的 XulRunner 以拥有此可执行文件)。
对于 XulRunner 的多个实例,导出 MOZ_NO_REMOTE=1。
这里有一个论坛帖子,指的是使用该--disable-single-profile
选项(以及其他)用于类似目的(运行mozilla2ps):
大多数时候都像魅力一样工作,但是当同时转换两个文档时,xulrunner 抱怨另一个窗口仍在运行。我必须防止这种情况。使用旧的 Mozilla 套件可以通过以下选项防止这种行为:
ac_add_options --disable-single-profile
ac_add_options --enable-profilesharing
ac_add_options --disable-profilelocking
xulrunner 也支持这些选项,但 xulrunner 不会使用 --disable-single-profile 选项进行编译。有人知道更多关于这个问题的信息吗?或者有没有另一种方法让 xulrunner 忽略已经运行的 xulrunner 进程而只是启动一个新进程?
不幸的是,我对此进行了测试,尽管 xulrunner 现在可以使用该组选项进行编译,但它似乎仍然会产生共享错误(我可能在这里遗漏了一些东西)