Używam modułu przetwarzania wieloprocesowego do równoległego przetwarzania w moim programie. Kiedy testuję to, często chcę zabić program wcześniej, gdy zauważę błąd, ponieważ ukończenie trwa trochę dłużej. W środowisku Linux uruchamiam mój program z terminala i używam klawiszy Ctrl + C, aby go zabić. W przypadku przetwarzania wieloprocesorowego powoduje to, że wszystkie procesy są zabijane, ale nigdy nie odzyskuje się zachęty bash i trzeba zamknąć terminal i otworzyć nowy (i wrócić do mojego katalogu roboczego), co jest dość denerwujące. Czy istnieje sposób na obejście tego?Programowanie przy użyciu wieloprocesowości
Odpowiedz
Hit Ctrl-Z, aby zawiesić proces Pythona, a następnie zrobić kill %1
aby go zabić. Możesz też po prostu nacisnąć Ctrl- \ (ukośnik odwrotny), ale to może spowodować, że proces opuści plik core.
+1: Czasami w programach wielowątkowych/wieloprocesowych musisz "zabić -9% 1", że źle chłopak. – jathanism
Możesz użyć ekranu , aby rozpocząć proces, a następnie zabić sesję ekranu, gdy zajdzie taka potrzeba. Nie usunie całego terminalu bash. Dla dobrego tutoriala ekranem patrz:
Ale czekaj ... czy nie istnieje sposób obsługi zdarzenia KeyboardException, aby zabić procesy w puli?
Próbowałem:
except KeyboardInterrupt as e: # Ctrl-C
print("Killing all the children in the pool.")
pool.close()
pool.terminate()
return 1
# raise e
Ale to nie wydają się działać.
Chciałbym dowiedzieć się, jak to zrobić. –
- 1. python: udostępnianie ogromnych słowników przy użyciu wieloprocesowości
- 2. Jak włączyć programowanie POJO programowo w Jersey przy użyciu Grizzly2?
- 3. Programowanie w sieci C# przy użyciu lidgren z mono
- 4. HL7 Continuous of Care Document (CCD) Programowanie przy użyciu SQL Programowanie
- 5. Przejście z wieloprocesowości do gwintowania
- 6. Stan mieszania wieloprocesowości i wątków w Pythonie
- 7. C# Asyn. Programowanie gniazda
- 8. Programowanie języka Windows Assembly Programowanie
- 9. Python: Dobre miejsce do nauki o "wieloprocesowości.
- 10. Chunking danych z dużego pliku do wieloprocesowości?
- 11. Programowe programowanie bieżącego kontrolera domeny
- 12. Asynchroniczne wywołanie w aplikacji GUI z wykorzystaniem wieloprocesowości
- 13. Programowanie "DSL" Clojure
- 14. Bluez Programowanie
- 15. Programowanie Winsock
- 16. Programowanie Poppler'a
- 17. Programowanie GPU?
- 18. Programowanie USB
- 19. Liczenie bigramsów naprawdę szybko (z lub bez wieloprocesowości) - python
- 20. . Programowanie .Net na komputerze Apple
- 21. niezainicjowane stałe programowanie :: kontrolery :: internalhelpers
- 22. Programowanie gier w Javie
- 23. Programowanie pierwsze, drugie ramy?
- 24. Co obejmuje programowanie handlu elektronicznego?
- 25. android - programowanie programowo LayoutParams
- 26. Serwer HTTP Programowanie
- 27. Test jednostkowy SparseArray przy użyciu JUnit (przy użyciu JVM)
- 28. utworzyć słownik przy użyciu 2 list przy użyciu LINQ
- 29. Parsowanie CSV przy użyciu OleDb przy użyciu C#
- 30. Rysowanie kuli przy użyciu pikseli 3D (wokseli)
Czy możesz podać próbkę tego, co próbujesz osiągnąć? – hyperboreean
Zobacz ten wątek: http://stackoverflow.com/questions/1408356/keyboard-interrupts-with-pythons-multiprocessing-pool – wchung