문제

Kernel 2.6.18을 사용한 Fedora Core 9 웹 서버에서 INT는 좀비 프로세스를 수확하지 않습니다. 프로세스 테이블이 아니었다면 결국 새로운 프로세스를 할당 할 수없는 상한에 도달하지 못한다면 이것은 견딜 수 있습니다.

샘플 출력 ps -el | grep 'Z':

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
5 Z     0  2648     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
1 Z    51  2656     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
1 Z     0  2670     1  0  75   0 -     0 exit   ?        00:00:02 crond <defunct>
4 Z     0  2874     1  0  82   0 -     0 exit   ?        00:00:00 mysqld_safe <defunct>
5 Z     0 28104     1  0  76   0 -     0 exit   ?        00:00:00 httpd <defunct>
5 Z     0 28716     1  0  76   0 -     0 exit   ?        00:00:06 lfd <defunct>
5 Z    74 10172     1  0  75   0 -     0 exit   ?        00:00:00 sshd <defunct>
5 Z     0 11199     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11202     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11205     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11208     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11211     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11240     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11246     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11249     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
5 Z     0 11252     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>
1 Z     0 14106     1  0  80   0 -     0 exit   ?        00:00:00 anacron <defunct>
5 Z     0 14631     1  0  75   0 -     0 exit   ?        00:00:00 sendmail <defunct>

이것이 OS 버그입니까? 오해? 이 문제의 근원에 대한 영감을 찾고 있습니다. 감사

도움이 되었습니까?

해결책

이것은 두 가지 방법으로 우분투에서 나를 때렸다.

  1. 커널에 문제가 있습니다. 제 경우에는 커널 드라이버가 추락하고 프로세스 내부가 Bonkers로 갔다. 이것을 테스트하는 가장 좋은 방법은/var/log/syslog (및 dmesg)를 확인하여 "버그 : 커널 null 포인터 Dereference at 0000000000000028", "버그 : 000000000000000028"

  2. 내가 본 다른 시간은 Init가 "대부분의 목적을위한 아동 프로세스의 부모"(실제 인용 인용)이 아닐 때입니다. PTRACE SYSCALL (Strace 프로그램이 내부적으로 사용)을 사용하여 프로세스에 첨부 할 때 발생할 수 있습니다. 예를 들어, 나는 Strace를 아동 프로세스 B에 부착하는 상황에 빠졌습니다. 결국, 프로세스 B는 부모와 마찬가지로 종료됩니다 (어떤 순서가 확실하지 않음). 프로세스 B는 Init가 소유 한 좀비처럼 보입니다. 그러나 "대부분의 목적"부모는 실제로 Strace 프로그램이었습니다. Strace를 죽인 후, 프로세스 B가 다시 나타났습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top