Tôi đang xử lý máy chủ được viết bằng python bị khóa và ngừng hoạt động, bao gồm cả ghi nhật ký. Tôi tự hỏi nếu có một python tương đương với java "kill -3" tín hiệu mà ít nhất là in stacktrace hiện tại.Làm thế nào để buộc máy ảo của python in dấu vết ngăn xếp?
8
A
Trả lời
0
Bạn có thể tìm thấy giải pháp (chỉ có Unix) trong this question.
2
import signal, traceback
def quit_handler(signum,frame):
traceback.print_stack()
signal.signal(signal.SIGQUIT,quit_handler)
4
Sử dụng mô-đun faulthandler. https://pypi.python.org/pypi/faulthandler/
import faulthandler
faulthandler.register(signal.SIGUSR1)
này hoạt động bên ngoài của tín hiệu Python của vòng lặp thông dịch viên của xử lý ở mức độ C, do đó nó sẽ làm việc ngay cả khi trình thông dịch Python bản thân được treo chờ đợi vào cái gì khác.
+0
Như bạn gợi ý, 'faulthandler' được đưa vào thư viện chuẩn từ Python 3.3+ – rescdsk
Các vấn đề liên quan
- 1. Cách in dấu vết ngăn xếp của StackOverflowException
- 2. Làm thế nào để in dấu vết ngăn xếp trong file log
- 3. Trang Lỗi - cách in dấu vết ngăn xếp trong JSP
- 4. Làm thế nào để buộc ruby hiển thị dấu vết ngăn xếp đầy đủ?
- 5. In dấu vết ngăn xếp trong C++ (MSVC)?
- 6. Làm thế nào để có được dấu vết ngăn xếp của một ngoại lệ trong Scala để in nó?
- 7. Làm cách nào để in dấu vết ngăn xếp đầy đủ bằng GlassFish?
- 8. Bắt dấu vết ngăn xếp trong Perl?
- 9. Làm thế nào để định dạng dấu vết ngăn xếp của ngoại lệ trong C#?
- 10. in dấu vết ngăn xếp python mà không có ngoại lệ được nâng lên
- 11. Cách tìm dấu vết ngăn xếp này?
- 12. Cách dễ dàng để in dấu vết ngăn xếp hiện tại của một ứng dụng?
- 13. Dấu vết ngăn xếp ngoại lệ Javascript
- 14. Khi nào -g nên được sử dụng để in dấu vết ngăn xếp trong OCaml?
- 15. Bắt dấu vết ngăn xếp của một lỗi trong ExtendScript
- 16. Làm thế nào để hiển thị dấu vết ngăn xếp trên một ngoại lệ bị bắt?
- 17. Làm thế nào để trích xuất dấu vết ngăn xếp từ minidumps?
- 18. Làm cách nào để in dấu vết ngăn xếp thời gian chạy của quá trình Ruby 1.9?
- 19. Wheres dấu vết ngăn xếp của tôi đã biến mất?
- 20. Cách lấy dấu vết ngăn xếp của một chủ đề
- 21. Làm thế nào để có được chuỗi dấu vết ngăn xếp mà không tăng ngoại lệ trong python?
- 22. Làm thế nào để tạo ra một dấu vết ngăn xếp sâu trong node.js?
- 23. Làm thế nào để đăng nhập dấu vết ngăn xếp trong Node.js
- 24. Làm thế nào để hiển thị dấu vết ngăn xếp đầy đủ trên nhật thực?
- 25. Làm cách nào để lấy dấu vết của python để trả về chuỗi thay vì in?
- 26. Tìm dấu vết ngăn xếp thực tế Java từ theo dõi ngăn xếp JavaScript
- 27. Dấu vết ngăn xếp sạch trong Groovy bằng Eclipse?
- 28. __forwarding__ trong dấu vết ngăn xếp nghĩa là gì?
- 29. nhận dấu vết ngăn xếp trên lỗi tryCatch'ed trong R
- 30. GWT: Gửi lỗi phía máy khách/ngăn xếp dấu vết tới máy chủ?
'giết -2' gửi SIGINT, đó có ít nhất trên Linux dường như chuyển thành một' ngoại lệ KeyboardInterrupt'. Điều đó có thể gây ra một dấu vết ngăn xếp được bán phá giá ở đâu đó. Nó phụ thuộc vào máy chủ của khóa học. –