ININ은 좀비/소진 프로세스를 절대 수확하지 않습니다
-
19-09-2019 - |
문제
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 버그입니까? 오해? 이 문제의 근원에 대한 영감을 찾고 있습니다. 감사
해결책
이것은 두 가지 방법으로 우분투에서 나를 때렸다.
커널에 문제가 있습니다. 제 경우에는 커널 드라이버가 추락하고 프로세스 내부가 Bonkers로 갔다. 이것을 테스트하는 가장 좋은 방법은/var/log/syslog (및 dmesg)를 확인하여 "버그 : 커널 null 포인터 Dereference at 0000000000000028", "버그 : 000000000000000028"
내가 본 다른 시간은 Init가 "대부분의 목적을위한 아동 프로세스의 부모"(실제 인용 인용)이 아닐 때입니다. PTRACE SYSCALL (Strace 프로그램이 내부적으로 사용)을 사용하여 프로세스에 첨부 할 때 발생할 수 있습니다. 예를 들어, 나는 Strace를 아동 프로세스 B에 부착하는 상황에 빠졌습니다. 결국, 프로세스 B는 부모와 마찬가지로 종료됩니다 (어떤 순서가 확실하지 않음). 프로세스 B는 Init가 소유 한 좀비처럼 보입니다. 그러나 "대부분의 목적"부모는 실제로 Strace 프로그램이었습니다. Strace를 죽인 후, 프로세스 B가 다시 나타났습니다