Bạn có thể xem PPID của nó (ID tiến trình gốc):
$ ps -eo pid,ppid,args | grep java
Khi bạn đã có PPID (cột thứ hai) của quy trình Java, hãy sử dụng ps
lại để tìm quy trình liên quan:
$ ps -p [PPID]
Chỉnh sửa : nếu cha mẹ là 1 (init), thì cha mẹ đầu tiên của quá trình Java của bạn đã chết ngay sau khi "sinh con" (thật đáng buồn). Do đó, bạn không thể sử dụng hệ thống phân cấp quy trình hiện tại để tìm thấy nó. Điều đầu tiên tôi khuyên bạn nên làm là kiểm tra ps -ef
. Bạn có thể tìm ra thủ phạm chỉ bằng cách đọc đầu ra.
Sau đó, hãy xem crontabs (bạn đã làm rồi, nhưng nó sẽ không đau):
$ for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done
Điều này sẽ yêu cầu quyền root.
Vẫn không thể thấy một quy trình Java được lên lịch? Đằng đó. Hãy thử một cái gì đó khác. Nếu quy trình Java của bạn có mặt kể từ khi khởi động, hãy xem các chương trình được lập trình lúc khởi động. Tôi sẽ đề nghị một cái gì đó như ...
$ grep -iR java /etc/rc*
Nếu bạn vẫn không thể tìm thấy bất cứ điều gì thì ... Tôi thừa nhận tôi đang cạn kiệt ý tưởng. Bạn thực sự cần có cái nhìn khác ps -ef
và định vị các quy trình liên quan đến các chương trình dựa trên Java. Bạn sẽ bắt gặp một trình nền, hoặc một "trình khởi chạy", chịu trách nhiệm cho sự hồi sinh liên tục của quy trình Java của bạn.
ps xf
việc hiển thị cây quy trình không? Khi nó đứng, chúng ta có rất ít để tiếp tục.