Gỡ lỗi quá trình bash treo


7

Sau một số hoạt động xấu ngày hôm nay, tôi đã kiểm tra top:

 1  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  14229 myuser    20   0  8776 5264 1684 R   99  0.2   1383:47 bash

98-100% được sử dụng bởi một quy trình Bash đã chết từ lâu (tôi chỉ đóng tất cả các thiết bị đầu cuối để xác minh nó)? Tôi không chắc điều gì gây ra nó.

$ lsof -p 14229
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
bash    14229 myuser  cwd    DIR   0,23     4096 11059271 /home/users/myuser (company.com:/home/users/)
bash    14229 myuser  rtd    DIR    8,2     4096        2 /
bash    14229 myuser  txt    REG    8,2   920788  7617113 /bin/bash
bash    14229 myuser  mem    REG    8,2    30520   657679 /lib/i386-linux-gnu/libnss_compat-2.15.so
bash    14229 myuser  mem    REG    8,2    13940   657672 /lib/i386-linux-gnu/libdl-2.15.so
bash    14229 myuser  mem    REG    8,2  1713640   657666 /lib/i386-linux-gnu/libc-2.15.so
bash    14229 myuser  mem    REG    8,2   121024   660635 /lib/i386-linux-gnu/libtinfo.so.5.9
bash    14229 myuser  mem    REG    8,2    47040   657683 /lib/i386-linux-gnu/libnss_files-2.15.so
bash    14229 myuser  mem    REG    8,2    42652   657690 /lib/i386-linux-gnu/libnss_nis-2.15.so
bash    14229 myuser  mem    REG    8,2   134344   657659 /lib/i386-linux-gnu/ld-2.15.so
bash    14229 myuser  mem    REG    8,2    92016   657678 /lib/i386-linux-gnu/libnsl-2.15.so
bash    14229 myuser  mem    REG    8,2  2919792  7748495 /usr/lib/locale/locale-archive
bash    14229 myuser  mem    REG    8,2    26256  7757442 /usr/lib/i386-linux-gnu/gconv/gconv-modules.cache
bash    14229 myuser    0r   CHR  136,1      0t0        4 /dev/pts/1 (deleted)
bash    14229 myuser    1w   CHR  136,1      0t0        4 /dev/pts/1 (deleted)
bash    14229 myuser    2w   CHR  136,1      0t0        4 /dev/pts/1 (deleted)
bash    14229 myuser  255u   CHR  136,1      0t0        4 /dev/pts/1 (deleted)

Ngoại trừ các /dev/ptsdòng này giống hệt với các quy trình bash khác:

COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
bash    6674 myuser  cwd    DIR   0,23     4096 11059271 /home/users/myuser (company.com:/home/users/)
bash    6674 myuser  rtd    DIR    8,2     4096        2 /
bash    6674 myuser  txt    REG    8,2   920788  7617113 /bin/bash
bash    6674 myuser  mem    REG    8,2  1713640   657666 /lib/i386-linux-gnu/libc-2.15.so
bash    6674 myuser  mem    REG    8,2   121024   660635 /lib/i386-linux-gnu/libtinfo.so.5.9
bash    6674 myuser  mem    REG    8,2    47040   657683 /lib/i386-linux-gnu/libnss_files-2.15.so
bash    6674 myuser  mem    REG    8,2    13940   657672 /lib/i386-linux-gnu/libdl-2.15.so
bash    6674 myuser  mem    REG    8,2    30520   657679 /lib/i386-linux-gnu/libnss_compat-2.15.so
bash    6674 myuser  mem    REG    8,2    42652   657690 /lib/i386-linux-gnu/libnss_nis-2.15.so
bash    6674 myuser  mem    REG    8,2    92016   657678 /lib/i386-linux-gnu/libnsl-2.15.so
bash    6674 myuser  mem    REG    8,2   134344   657659 /lib/i386-linux-gnu/ld-2.15.so
bash    6674 myuser  mem    REG    8,2  2919792  7748495 /usr/lib/locale/locale-archive
bash    6674 myuser  mem    REG    8,2    26256  7757442 /usr/lib/i386-linux-gnu/gconv/gconv-modules.cache
bash    6674 myuser    0r   CHR  136,2      0t0        5 /dev/pts/2
bash    6674 myuser    1w   CHR  136,2      0t0        5 /dev/pts/2
bash    6674 myuser    2w   CHR  136,2      0t0        5 /dev/pts/2
bash    6674 myuser  255u   CHR  136,2      0t0        5 /dev/pts/2

Tiêu chuẩn killkhông hoạt động:

$ kill 14229 && sleep 1m && kill -0 14229 && echo Alive
Alive

Theo ps wafuxnó không có quá trình con.

Đã thử truy tìm nó theo khuyến nghị của @ChandraRavoori:

$ sudo strace -p 14229
Process 14229 attached - interrupt to quit

Sau đó tôi không nhận được đầu ra. Tôi đã cố gắng kill 14229nhiều lần và nó chỉ in như sau mỗi lần:

--- SIGTERM (Terminated) @ 0 (0) ---

Những thứ khác để kiểm tra trước làkill -9 gì?


2
Làm thế nào về chạy strace trên pid?
iruvar

Gợi ý tốt @ChandraRavoori; cập nhật câu hỏi.
l0b0

3
Bạn có thể thử gắn gdb vào nó, nếu bạn muốn gỡ lỗi. Ngoài ra, chỉ cần giết -9 nó.
derobert

3
/home/users/myusertrông giống như trên một mount NFS, vì vậy quá trình bash có thể bị kẹt với một tay cầm NFS cũ cho cwd của nó. máy chủ NFS của bạn không thể truy cập được trong một thời gian?
cas

bởi vì strace không tạo ra bất kỳ đầu ra nào, tôi cho rằng quá trình này bị chặn trong một cuộc gọi hệ thống. Togehter với sự quan sát của @CraigSanders Tôi cũng sẽ nghĩ rằng đây là một vấn đề liên quan đến nfs.
phép lạ173

Câu trả lời:



0

Không biết bạn đã thử chưa
ps xal, nhưng nó có thể cung cấp cho bạn id tiến trình cha,

Bạn có thể giết cha mẹ để phục hồi từ nó.

PS: thường bash có quá trình init là cha. nếu đó cũng là ở đây, thì chỉ có giải pháp chuẩn, Ctrl + Alt + del (hoặc khởi động lại) chỉ có thể giải quyết nó.


6
Tôi không biết quản trị viên Linux xem xét khởi động lại giải pháp tiêu chuẩn ....
Thihara

Giết mẫu số ít phổ biến nhất hoạt động như một biện pháp khẩn cấp khi phần còn lại của hệ thống có mức độ ưu tiên cao hơn và có nguy cơ, nhưng không liên quan đến gỡ lỗi. Mặt khác, theo dõi cha mẹ và khám phá con cháu, tuy nhiên bạn làm như vậy, là một nơi tuyệt vời để bắt đầu. Một từ cho các cặp khôn ngoan - máy khách-máy chủ là phổ biến và giao tiếp giữa các quá trình chung, do đó, cây quy trình sẽ chỉ đưa bạn đến nay. (Thật khó để tưởng tượng một môi trường chu kỳ được định hướng nghiêm ngặt hữu ích, phải không?)
John P

1
Đối với bạn và / hoặc độc giả tương lai, đây là một bài viết rất nhiều thông tin về phát hiện treo Linux: pdfs.semanticscholar.org/6fcb/ chủ - chỉ đọc lướt qua vài trang đầu tiên cho các khái niệm / từ khóa. Nó bao gồm cách mọi thứ hiện đang hoạt động (tốt, cho hoặc mất 8 năm) và sai sót / quá khổ / cạm bẫy.
John P
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.