Остановка процесса Firefox завершается неудачно, поскольку PID отсутствует? - PullRequest
0 голосов
/ 09 ноября 2019

В настоящее время имеется около 50 URL-адресов, которые нам необходимо периодически просматривать случайным образом на настенном телевизоре в работе, а также 6 URL-адресов, которые всегда должны быть доступны и доступны. План состоит в том, чтобы выбрать случайный URL-адрес из списка 50 и отобразить его в течение 30 секунд в Firefox, затем завершить процесс и выбрать другой URL-адрес, чтобы он автоматически открывался в его предшественнике, но всегда оставлял остальные 6 экземпляров Firefox в фоновом режиме. У меня проблема в том, что код PowerShell показывает PID нового экземпляра Firefox, но PID отсутствует в диспетчере задач, поэтому не закрывается, и в результате мы открываем слишком много страниц. Не знаю, как это решить, любые идеи приветствуются, хотя предпочтение будет отдаваться разрешению, связанному с Powershell.

Вращатель вкладок не будет работать, так как у нас слишком много открытых вкладок. Попытка реализовать сценарий, основанный на времени, чтобы любой экземпляр Firefox за 30 секунд, но менее 1 минуты, был убит, однако это всегда казалось убивающим весь экземпляр 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

Текущий скрипт показывает мне PID из 'Write-Host $ app.Id' в ISE, однако, что PID отсутствует в диспетчере задач, поэтому интересно, если это связано с Firefoxвопрос в отличие от POSH. Ожидаемым результатом будет то, что PS убивает явный PID, и в Firefox появляется новый случайный URL.

1 Ответ

0 голосов
/ 10 ноября 2019

Вы можете попытаться принудительно открыть его в отдельном процессе, указав профиль для вращающихся экземпляров Firefox с выделенными точками и отдельный профиль для 6 страниц: Есть ли способ заставить Firefox запускаться по-новому? process?

Это касается использования -p для определения профилей, и, очевидно, отдельные экземпляры профиля будут отдельными процессами.

Используйте -P, чтобы вручную создать профиль, такой как «Сценарий», идругой, например «AlwaysOn» один раз, а затем используйте -p Script для запуска из вашего скрипта. Используйте -p AlwaysOn, чтобы запустить 6 фоновых вкладок и посмотреть, разделяет ли процесс процессы.

...