Psutil уничтожает неправильный процесс

#python-3.x #psutil

#python-3.x #psutil

Вопрос:

У меня возникла проблема с моим кодом, и мне было интересно, можете ли вы, ребята, мне помочь. Вот пример кода:

 PID = os.getpid() # Here i get the process id of self.
print(PID) #Here i print the id
pids = [] #Making an array for other ids
for i in range(9999): #Loop through 9999 possible pids
   pids.append(i)#  1 each loop
   print(pids[i]) 
   if pids[i] != PID: #if it is not this pid kill the program.
        try:
            psutil.Process(i).kill()
            time.sleep(1)
        except:
            print("nope")
   else:
        print("Same") # If it is the same pid don't kill it and pass.
        pass
  

Так в чем проблема?

Допустим, что мой PID равен 20. Цикл «for» доходит до 20 и говорит ТО же самое и не завершает работу программы [Потрясающе!] После этого он доходит до 21 и завершает процесс 20 [основная программа, которую он просто пропустил, иначе self …]

Почему он убивает себя после того, как не сделал этого? Если у вас есть какие-либо идеи, скажите мне. Я искал в Google и stack overflow, но безуспешно.

Комментарии:

1. Поставьте break после строки с print("Same") . Тот же уровень отступа, что и в print инструкции.

2. Он должен пройти, чтобы продолжить убивать другие программы после него. Break просто продолжается с другим кодом под ним. Это похоже на очистку оперативной памяти.

3. Как вы на самом деле это запускаете? Есть ли несколько экземпляров, запущенных одновременно?

4. Только один экземпляр, не в классе. Он просто убивает себя после прохождения PID…. Я этого не понимаю… Логика хороша, и синтаксис тоже……

5. О, я понимаю, что ты сейчас делаешь.