Я пытаюсь запустить какой-то код Selenium, который через некоторое время выдает ошибку из-за сбоя сетевых запросов. Поэтому я пытаюсь запустить 3 различных процесса, которые перезапускаются через 10 минут. Но через несколько часов мне сказали, что памяти не осталось. Итак, я начал смотреть на использование в в htop, и когда я уменьшаю временной интервал до 10 секунд, память уходит быстрее. Я пытаюсь понять, что я могу сделать, чтобы этого не случилось. У меня есть скрипт, который я запускаю в каждом процессе, и я хочу завершить его, освободить все его ресурсы и перезапустить.
procs = []
while(True):
for i in range(numProcs):
procs.append(Process(target = run, args = (lock, )))
if procs[i].is_alive() == False:
procs[i].start()
print(procs[i].pid)
time.sleep(60*10)
for i in range(numProcs):
procs[i].terminate()
print("terminating process")
procs = []
Я уже связывал удаление процессов по отдельности из списка как третий цикл for. Знал, что это не сработает.
Когда я убиваю основной скрипт, который управляет процессами, память освобождается, я верю. Мой раздел подкачки остается заполненным.
Перезапуск моей машины - единственное, что я делал, чтобы решить проблему, когда она возникает.