Làm thế nào để bạn tìm thấy quá trình cha mẹ của một quá trình zombie?


47

Làm thế nào để bạn tìm thấy quá trình cha mẹ của quá trình zombie?

Khi quá trình con là một cái gì đó mà cha mẹ không hoàn toàn rõ ràng ...

Có một số cách để liệt kê các quy trình ở định dạng cây hoặc một cái gì đó?

Câu trả lời:


61

Thêm ltùy chọn vào dòng lệnh ps của bạn. Đây là tùy chọn cho đầu ra dài. Id tiến trình cha là một trong những cột bổ sung - có nhãn PPID.

$ ps l
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
0   508  3344  4498  18   0   2452  1236 wait   Ss   pts/12     0:00 /bin/sh
0   508  4467 17796  15   0   4664  1572 wait   Ss   pts/5      0:00 -/bin/bash
0   508  4498  4467  15   0  23032 15108 -      S+   pts/5      2:20 emacs -nw
0   508  4532 17796  15   0   4532  1464 wait   Ss   pts/13     0:00 -/bin/bash
0   508  4916 17796  15   0   4664  1648 wait   Ss   pts/7      0:01 -/bin/bash

Một tùy chọn khác là lệnh pstree để hiển thị biểu diễn cây ascii của các tiến trình. Bạn có thể muốn -ptùy chọn hiển thị id quá trình.

$ pstree -p dharris
screen(17796)─┬─bash(4467)───emacs(4498)───sh(3344)───sh(3345)
              ├─bash(4532)───su(31037)───bash(31041)
              ├─bash(4916)───pstree(26456)
              ├─bash(13547)───su(20442)───bash(20443)
              └─bash(17797)

sshd(25813)───bash(25817)───screen(25870)

8
Câu trả lời tuyệt vời. Thay vì pstree -p harris, pstree -p $USERsẽ truyền đạt cùng một ý nghĩa, và làm việc nguyên văn.
phihag

12

FWIW, pscó chế độ "rừng" hiển thị nhiều cây:

# ps --version
procps version 3.2.8

# ps f
  PID TTY      STAT   TIME COMMAND
 7889 pts/7    Ss     0:00 -bash
 7988 pts/7    R+     0:00  \_ ps f
 2447 pts/0    Ss+    0:00 -bash
 2532 pts/0    S      0:00  \_ /bin/bash /home/robmee01/sync.sh
 2548 pts/0    S      0:00  |   \_ ssh usernamer@example.com
 2533 pts/0    S      0:00  \_ python /home/robmee01/IE2FF.py
 2534 pts/0    S      0:08  \_ x11vnc -usepw -forever
 2535 pts/0    S      2:47  \_ xosview
 2536 pts/0    Sl     0:17  \_ java -jar /work/timesheet/TimeSheet.jar
 2662 pts/0    Sl    18:53  \_ ./firefox-bin

Nếu điều đó không hiển thị quá trình bạn đang tìm kiếm, hãy thử chỉ định rõ tên người dùng của bạn : ps f -U $USER; điều này có xu hướng hiển thị nhiều quá trình hơn cũ ps.

Cá nhân tôi sử dụng ps fo pid,cmdhoặc để có được chế độ xem rừng với lựa chọn cột của mình ( pid,cmdtrong trường hợp này). Bạn có thể nhận được một danh sách đầy đủ các cột với ps L.


Hoàn hảo, lựa chọn duy nhất thực sự hoạt động.
Felipe

1

htopcũng tốt, đặc biệt là khi nhấn lvào tên quy trình sẽ hiển thị tất cả các tệp, ống dẫn và url đang mở cho một quy trình (yêu cầu lsof)


htop cũng có thể được chuyển sang chế độ cây.
lanoxx

-1

Đầu tiên sử dụng topđể tìm hiểu pidquá trình zombie. Sau đó chạy ps -elfhoặc ps -efđể tìm ppidzombie.

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.