W języku Python w systemie Windows: chcę uruchomić kod w oddzielnym procesie. I nie chcę, żeby rodzic czekał, aż to się skończy. Próbowano:Uruchom proces i zakończ, nie czekając na niego.
from multiprocessing import Process
from time import sleep
def count_sheeps(number):
"""Count all them sheeps."""
for sheep in range(number):
sleep(1)
if __name__ == "__main__":
p = Process(target=count_sheeps, args=(5,))
p.start()
print("Let's just forget about it and quit here and now.")
exit()
, która rozpoczyna proces potomny i kontynuuje wykonywanie. Jednak gdy rodzic osiąga koniec, wciąż czeka na wyjście dziecka.
Czy istnieje sposób na umożliwienie rodzicowi rzucenia palenia, nawet gdy dziecko jest uruchomione? Oczywiście, mógłbym po prostu uruchomić nowego interpretera pythonów przy użyciu subprocess.Popen
i podać mu liczenie owiec jako oddzielny skrypt.
Cały ten moduł służy do odtwarzania procesów kodu Pythona, więc chciałbym to wykorzystać zamiast hakować w systemie operacyjnym. Byłoby świetnie, gdyby ten sam kod działał wszędzie tam, gdzie działa Python, nie tylko w systemie Windows.
from subprocess import Popen
Popen([ "foo.exe", "arg1", "arg2", "arg3")
See the Python doco, w szczególności: są wycofywane
W tym miejscu zwykle widzę przeciwny problem. – mob