停止Firefox进程失败,因为PID不存在



目前有大约50个URL,我们需要定期在工作中的壁挂式电视上随机查看,还有6个URL必须始终可用。计划是从50个列表中随机选择一个URL,并在Firefox中显示30秒,然后终止该过程,选择另一个URL在其前代位置自动打开,但始终在后台维护其他6个Firefox实例。我遇到的问题是PowerShell代码显示了新Firefox实例的PID,但该PID不在任务管理器中,因此无法关闭,并且我们最终打开了太多页面。不知道如何解决这个问题,欢迎任何想法,尽管更喜欢Powershell相关的解决方案。

标签旋转器无法工作,因为我们打开了太多标签。尝试实现一个基于时间的脚本,因此任何超过30秒但小于1分钟的Firefox实例都会被杀死,但这似乎总是会杀死所有的Firefox实例,包括必须始终可用的6个实例。

PowerShell代码的一部分如下:

$bb = 1
$app = Get-Content $importPath |
Get-Random -Count $bb |
ForEach-Object {Start-Process -PassThru $_}
Wait-Process $app.Id
Write-Host $app.Id
Start-Sleep -Seconds 30
Stop-Process $app

当前脚本向我显示了ISE中"Write Host$app.Id"的PID,但是,该PID不存在于任务管理器中,所以想知道这是否是与Firefox相关的问题,而不是POSH。预期的结果将是PS杀死显式PID,并在Firefox中生成一个新的随机URL。

您可以尝试通过为Firefox的scirpt旋转实例指定一个配置文件,并为您的6个页面指定一个单独的配置文件,来强制它在一个独立的进程中打开:有办法强制Firefox在一个新进程中启动吗?

这包括使用-p来指定概要文件,显然单独的概要文件实例将是单独的进程。

使用-p手动创建一个类似"Script"的配置文件和另一个类似于"AlwaysOn"的配置,然后使用-p Script从脚本启动。使用-p AlwaysOn启动6个背景选项卡,看看这是否会使进程保持分离。

相关内容

最新更新