Có cách nào trong Java để xử lý SIGTERM đã nhận không?Cách xử lý một SIGTERM
Trả lời
Có, bạn có thể đăng ký hook tắt máy với Runtime.addShutdownHook()
.
Bạn có thể thêm shutdown hook để thực hiện bất kỳ việc dọn dẹp nào.
Như thế này:
public class myjava{
public static void main(String[] args){
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
System.out.println("Inside Add Shutdown Hook");
}
});
System.out.println("Shut Down Hook Attached.");
System.out.println(5/0); //Operating system sends SIGFPE to the JVM
//the JVM catches it and constructs a
//ArithmeticException class, and since you
//don't catch this with a try/catch, dumps
//it to screen and terminates. The shutdown
//hook is triggered, doing final cleanup.
}
}
Sau đó chạy nó:
[email protected]:~$ javac myjava.java
[email protected]:~$ java myjava
Shut Down Hook Attached.
Exception in thread "main" java.lang.ArithmeticException:/by zero
at myjava.main(myjava.java:11)
Inside Add Shutdown Hook
Một cách khác để xử lý tín hiệu trong Java là thông qua các gói sun.misc.signal. Tham khảo http://www.ibm.com/developerworks/java/library/i-signalhandling/ để biết cách sử dụng.
LƯU Ý: Chức năng nằm trong gói mặt trời. * Cũng có nghĩa là nó có thể không di động/hoạt động giống nhau trên tất cả các hệ điều hành. Nhưng bạn có thể muốn thử nó.
Nhưng trên thực tế, nó cũng giống nhau? –
Không - không chính xác. API xử lý tín hiệu tôi đã đề cập có thể được sử dụng để xử lý hầu hết các tín hiệu hệ điều hành gốc (bẫy, intr, kill, vv) trong Java Apps. Mặt khác ShutdownHook chỉ được gọi khi JVM cuối cùng kết thúc (sau khi nhận được tín hiệu kill). – arcamax
@arcamax liên kết dường như bị hỏng – GreenGiant
- 1. Python: xử lý mặc định của SIGTERM là gì?
- 2. Bộ xử lý tín hiệu SIGKILL
- 3. Cách xử lý một mảng IN PARALLEL
- 4. Tương tự Win32 API gửi/bắt SIGTERM
- 5. bash ống & SIGTERM
- 6. Xử lý một phần tệp bằng bộ tiền xử lý
- 7. EOFException - cách xử lý?
- 8. Cách xử lý nút "Lên"?
- 9. MATLAB- chuyển một tham số xử lý chức năng vào một hàm khác làm xử lý
- 10. Cách xử lý đúng cách xử lý các quy trình con
- 11. Trình xử lý ngắt có thể được xử lý bởi cùng một trình xử lý ngắt không?
- 12. Cách xử lý một nút bấm từ NSCollectionView
- 13. Làm cách nào để xử lý một javax.persistence.OptimisticLockException?
- 14. Cách AngularJS xử lý một phương thức như thế này
- 15. Cách tạo một trình xử lý hình ảnh trong NancyFx
- 16. Một cách tốt hơn để xử lý NullReferenceExceptions trong C#
- 17. cắt một lớp xử lý DLL
- 18. Xử lý vấn đề ngoại lệ chưa được xử lý
- 19. Xử lý ngoại lệ chưa xử lý trong .NET 1.1
- 20. Nhận quy trình đang chạy xử lý được xử lý
- 21. Xử lý một chuỗi với ANTLR4
- 22. Cách tốt nhất để xử lý KeyNotFoundException
- 23. cách xử lý tệp .mdb với python
- 24. Boost Property_Tree iterators, cách xử lý chúng?
- 25. Cách xử lý nhập dữ liệu sai
- 26. Chiến lược xử lý lỗi và xử lý lỗi
- 27. Cách xử lý không đồng bộ?
- 28. Cách xử lý ~ trong đường dẫn tệp
- 29. GWT Autobean - cách xử lý danh sách?
- 30. Cách xử lý biểu mẫu với CodeIgniter
Mục nhập blog là 404 – luckydonald