Python, как правильно завершить процесс .exe?

Привет.
Запускаю ярлыки firefox с нужными мне профилями, до 10 шт одновременно

os.startfile(f"profile{i}.lnk")

Теперь через определённое время их нужно завершить, например третий профиль, потом пятый, первый и т.д
С этим я так и не разобрался.
Разобрался как убить все процессы firefox.exe:

os.system("taskkill /im firefox.exe")

Но при следующем запуске, firefox пишет что не корректно была завершена работа и просит запуститься в безопасном режиме.
При alt+f4 не ругается на некорректное завершение работы.
Вопрос в том как правильно завершить что бы он не ругался?
А ещё лучше как правильно завершить определённый профиль?
  • Вопрос задан
  • 5038 просмотров
Решения вопроса 1
HemulGM
@HemulGM Куратор тега Python
Delphi Developer, сис. админ
Отправить сообщение приложению о закрытии через WinAPI
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
yupiter7575
@yupiter7575
Python программист
os.system("taskkill /im firefox.exe")

Это плохая практика. Намного лучше делать так:
import subprocess as sp
sp.Popen('taskkill /im firefox.exe /f')

Если вы запускаете через интерпретатор пайтона, если же у вас упакованный .py файл, то лучше сделать так:
import psutil #pip isntall psutil

for proc in psutil.process_iter():
    if proc.name() == 'firefox.exe':
        proc.terminate()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы