#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")
. Тот же уровень отступа, что и в2. Он должен пройти, чтобы продолжить убивать другие программы после него. Break просто продолжается с другим кодом под ним. Это похоже на очистку оперативной памяти.
3. Как вы на самом деле это запускаете? Есть ли несколько экземпляров, запущенных одновременно?
4. Только один экземпляр, не в классе. Он просто убивает себя после прохождения PID…. Я этого не понимаю… Логика хороша, и синтаксис тоже……
5. О, я понимаю, что ты сейчас делаешь.