'giết java' không giết java


8

Tôi đang chạy debian ngay bây giờ và đôi khi tôi cần phải giết java thủ công từ thiết bị đầu cuối, nhưng khi tôi thử kill #pid#hoặc pkill javakhông có gì xảy ra. Không có đầu ra giao diện điều khiển (ok, đó là bình thường) và java vẫn đang chạy (không bình thường). Cách duy nhất để giết nó là khởi động lại PC. Bất kỳ đề xuất?


những gì bạn đang tìm kiếm làkillall java
roottraveller

Câu trả lời:


13

Có lẽ nó bỏ qua tín hiệu cho một số lý do. Bạn đã thử kill -9chưa

Nhưng xin lưu ý: kill -9không thể bỏ qua hoặc bị mắc kẹt. Nếu một quá trình nhìn thấy tín hiệu 9, nó không có lựa chọn nào khác ngoài việc chết. Nó không thể làm bất cứ điều gì khác - thậm chí không làm sạch các tập tin của nó một cách duyên dáng.


1
kill -9nói chung là một phương sách cuối cùng. Nó tốt hơn để thử kill -11sau đó kill -6đầu tiên. Nếu kill -11không giết nó, kill -6thường là như vậy. Hãy thử kill -11trước, đợi vài / vài giây và nếu quá trình vẫn còn sống, hãy thử kill -6. Đợi vài giây và nếu nó vẫn chưa chết, bạn có thể thử kill -9.
laebshade

2

Thỉnh thoảng tôi phải giết -9. Tuy nhiên, nếu điều này xảy ra thường xuyên, bạn nên khắc phục sự cố gây ra nó. Kill -9 có nghĩa là một cái gì đó là cách.

Nói chung, tôi chỉ thấy điều này xảy ra khi bạn rơi vào chế độ đập bộ nhớ nghiêm trọng, điều đó có nghĩa là bạn cần thêm bộ nhớ hệ thống hoặc bạn cung cấp cho java quá nhiều bộ nhớ khi bạn bắt đầu. Mặc dù vậy, thông thường hơn, đặc biệt là nếu bạn đang phát triển công cụ, bạn có thể thấy điều này khi hết bộ nhớ "PermGen".

http://www.brokenbuild.com/blog/2006/08/04/java-jvm-gc-permgen-and-memory-options/

Trong mọi trường hợp, nó có thể là do lỗi OutOfMemory của một số loại.


Tôi nghĩ rằng đó là nó. Tôi chưa thử, nhưng máy của tôi có vấn đề, có 1GB Ram và java đang phân bổ 512 MB.
Simiil

1
(Loooong trì hoãn nhận xét này ...) Nếu bạn đang phát triển Java, 1 Gig ram sẽ không bị cắt giảm. Cắn viên đạn và nâng cấp lên ít nhất 2, bắn cho 4+.
kāgii

0

Đọc này , nàynày . Nó sẽ giúp bạn hiểu cách hoạt động của lệnh kill.

Bạn có thể tìm kiếm pid java với:

pgrep -l java hoặc pidof java

Có thể bạn có các quy trình zombie trên hệ thống, trong trường hợp đó đọc ở đây


0

Thử cái này:

kill -9 $(pgrep Java)

pgreptrả về PID của quá trình có tên "Java" và killgiết chết nó


Điều này về cơ bản giống như pkill, đó là những gì anh ấy đã sử dụng
Michael Mrozek

-1

Điều này sẽ làm việc:

killall -9 Java

Đây thực sự là ans chính xác. xin vui lòng đặt bình luận của bạn nếu downvote.
roottraveller
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.