Bagaimana Anda menemukan proses induk dari proses zombie?

47

Bagaimana Anda menemukan proses induk dari proses zombie?

Ketika proses anak adalah sesuatu di mana orang tua tidak sepenuhnya jelas ...

Apakah ada cara untuk membuat daftar proses dalam format pohon atau sesuatu?

Mendongkrak
sumber

Jawaban:

61

Tambahkan lopsi ke baris perintah ps Anda. Ini adalah opsi untuk keluaran panjang. Id proses induk adalah salah satu kolom tambahan - berlabel 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

Pilihan lain adalah perintah pstree untuk menunjukkan representasi pohon ascii dari proses. Anda mungkin ingin -popsi menampilkan id proses.

$ 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)
Doug Harris
sumber
8
Jawaban yang sangat bagus. Alih-alih pstree -p harris, pstree -p $USERakan menyampaikan makna yang sama, dan bekerja kata demi kata.
phihag
12

FWIW, psmemiliki mode "hutan" yang menampilkan banyak pohon:

# 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 [email protected]
 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

Jika itu tidak menampilkan proses yang Anda cari, coba sebutkan nama pengguna Anda secara eksplisit ps f -U $USER:; ini cenderung menunjukkan lebih banyak proses daripada yang lama ps.

Secara pribadi saya menggunakan ps fo pid,cmdatau untuk mendapatkan tampilan hutan dengan kolom pilihan saya ( pid,cmddalam hal ini). Anda bisa mendapatkan daftar kolom lengkap dengan ps L.

RobM
sumber
Sempurna, satu-satunya opsi yang benar-benar berfungsi.
Felipe
1

htopjuga baik, terutama ketika menekan lnama proses yang akan menampilkan semua file, pipa, dan url yang terbuka untuk suatu proses (memerlukan lsof)

ccpizza
sumber
htop juga dapat diubah ke mode pohon.
lanoxx
-1

Pertama digunakan topuntuk mengetahui pidproses zombie. Kemudian jalankan ps -elfatau ps -efuntuk menemukan ppidzombie.

Rajesh Swain
sumber