Kann mir jemand helfen zu verstehen, warum mein Code zweimal ausgeführt wird?Python-Skript wird zweimal ausgeführt
import multiprocessing
from time import sleep
import os, signal
def neverEnding():
while True:
print ' Looping ... '
sleep(3)
p = multiprocessing.Process(target=neverEnding)
p.start()
sleep(10)
print p.is_alive()
print p.pid
p.terminate()
print p.is_alive()
print 'terminated?'
os.kill(int(p.pid), signal.SIGTERM)
print 'Now?'
sleep(3)
print p.is_alive()
Dies ist die Ausgabe, die ich bekomme.
Looping ...
Looping ...
Looping ...
Looping ...
True
8999
True
terminated?
Now?
False
Looping ...
Looping ...
Looping ...
Looping ...
True
9000
True
terminated?
Now?
False
Ich bekomme 'beendet?', 'Jetzt?' usw. ... zweimal gedruckt.
Kann jemand erklären, warum das passiert?
Werden die anderen Prozesse, die im Hintergrund ausgeführt werden, dies verursachen? (Ich hatte das gleiche Skript mit Subprozess zuvor ausgeführt)
Ich benutze Ubuntu.
führen Sie dieses Skript in Windows? dann siehe http://stackoverflow.com/questions/14175348/why-does-pythons-multiprocessing-module-import-main-when-starting-a-new-pro und http://stackoverflow.com/questions/20222534/ python-multiprocessing-on-windows-if-name-main – ymonad
tatsächlich läuft Ihr Code in Linux druckt 'beendet?' nur einmal – ymonad
Ich benutze Ubuntu, aktualisiert in Frage –