Có cách nào để ngăn chặn một chương trình java chạy bằng một kịch bản shell bằng cách biết alone.I tên đang sử dụng ksh vỏShell script để ngăn chặn một chương trình java
Trả lời
Thêm thuộc tính duy nhất vào JVM để xác định dễ dàng, ví dụ: cho test.class
java -Duniquename=1 test
Để giết nó:
ps ax | grep uniquename | grep -v grep | awk '{print $1}' | xargs kill
Bạn có thể sử dụng pkill:
pkill your_java_program_name
Thao tác này sẽ hoạt động nếu bạn chỉ chạy một phiên bản chương trình đang chạy.
Bạn có thể sử dụng jps xác định id tiến trình được liên kết với tên của chương trình java bắt đầu (jps là trình quản lý quy trình cho các chương trình java). Với id này, bạn có thể giết quá trình bình thường.
giả sử tên tệp java của tôi là test.java và đang chạy như thế nào để tìm nó? – Harish
+1 để giới thiệu tôi với jps :) – sfussenegger
@Harish: Sau khi biên dịch và thực thi nó sẽ được hiển thị dưới dạng 'kiểm tra'. Nếu bạn gói nó trong một jar thực thi (test.jar) và thực thi thông qua 'java -jar test.jar' jps hiển thị 'test.jar'. – Mnementh
theo dõi trên Mnementh' suggestion:
này nên thực hiện công việc
jps -l | grep org.example.MyMain | cut -d ' ' -f 1 | xargs -rn1 kill
jps -l
: danh sách java chuyên nghiệp cess với "tên gói đầy đủ cho lớp chính của ứng dụng hoặc tên đường dẫn đầy đủ đến tệp JAR của ứng dụng."grep
: chọn quá trình bạn thíchcut -d -' ' -f 1
: chia nhỏ các đầu ra trong các cột sử dụng dấu phân cách '' và chỉ in một đầu tiên (pid)xargs -rn1 kill
: thực hiện kill cho mỗi PID (nếu có)
lưu ý rằng bạn phải chạy jps và xarg với cùng một người dùng (hoặc gốc) khi bạn đang chạy quá trình
+1 cho mỗi' wow 'tôi đã nói trên mỗi dòng.:) – Nishant
Thao tác này cũng sẽ hoạt động đối với các máy windows, nhưng bạn sẽ cần phải thực hiện một số phát hiện môi trường để tìm ra 'kill' nào để sử dụng. –
@Odelya Tôi vừa thêm '-r' (' --no-run-if-empty') vào 'xargs' để tránh lỗi này. – sfussenegger
bạn có thể sử dụng tùy chọn -o ps để định dạng đầu ra của bạn,
ps -eo cmd,pid | awk '!/awk/&&/mycommand/{cmd="kill -9 "$2;system(cmd)}'
- 1. Ngăn chặn ssh phá vỡ các tham số script shell
- 2. Quá trình giết trong Shell Script
- 3. Tạo tập lệnh shell để chạy chương trình Java
- 4. Ngăn chặn SQL injection tấn công trong một chương trình Java
- 5. Chạy chương trình java từ một chương trình java khác
- 6. Ngăn chặn Windows máy trạm (desktop) từ khóa trong khi chạy một chương trình WPF
- 7. Thực thi shell-script với các tham số từ java
- 8. Làm thế nào để Daemonize một chương trình Java?
- 9. Làm thế nào để ngăn chặn quá trình java một cách duyên dáng?
- 10. Ngăn chặn pin một cách có lập trình
- 11. cách grep một biến trong chương trình shell?
- 12. Shell script gọi sudo; làm cách nào để tôi chặn lời nhắc mật khẩu
- 13. Thoát Shell Script Dựa trên Quy trình Thoát Mã số
- 14. Làm thế nào để ngăn chặn chương trình Windows khỏi ổ đĩa cứng quay xuống?
- 15. sắp xếp trong shell script
- 16. Shell Script và SQL quả
- 17. CScript/WScript Ngăn chặn một lỗi đang bị chặn
- 18. Nhập chức năng shell script
- 19. Nhận PID của quá trình trong Shell Script
- 20. Gọi makefiles từ Shell Script
- 21. shell script: câu lệnh if
- 22. tham số của tài liệu shell script '
- 23. Chương trình GUI Java - Chương trình sơn
- 24. Shell script sinh ra một quy trình sau một sự chậm trễ
- 25. Biên dịch một tệp Java ... bằng một chương trình Java
- 26. Ý nghĩa của $? trong shell script
- 27. Ngăn chặn/Chặn BroadcastReceiver trong một ứng dụng khác
- 28. Chặn nhấp chuột từ chương trình khác
- 29. Ngăn chặn fb.ui() di chuyển trình duyệt
- 30. Tôi làm cách nào để ngăn chặn trình bảo vệ màn hình và ngủ trong khi thực hiện chương trình?
Biết tên gì? Nếu bạn biết tên của tệp thực thi (thường là 'java'),' killall' là bạn của bạn. – sfussenegger
@sfussenegger: Có lẽ anh ta không muốn giết tất cả các quy trình java, nhưng chỉ có một quy trình cụ thể. – Mnementh
@Mnementh đó là những gì tôi mong đợi quá, nhưng từ các thông tin nhất định đây là điều tốt nhất tôi có thể khuyên bạn nên. – sfussenegger