Mam problem z aplikacją, która ciągle ginie. To działa serwer RHEL5. Uruchomiliśmy strace przeciwko temu procesowi i na końcu pliku śledzenia dostaję grupę +++ zabitych przez wiadomości SIGKILL +++ . SIGKILL nie może zostać złapany, więc próbuję znaleźć sposób, aby wyśledzić, dlaczego proces ginie.
Próbowałem użyć niektórych rekomendacji Red Hat, takich jak
auditctl -a exit,always -S kill
co nie działało. Nie widziałem żadnych wpisów dotyczących zabicia w pliku audit.log.
Innym zaleceniem Red Hat było użycie systemtap. Zainstalowałem go przez yum i próbowałem uruchomić stap z dostarczonym skryptem sigmon.stp. Plik sigmon.stp znajduje się na tej stronie: Sigmon.stp Użyłem polecenia podanego w sekcji komentarzy, a oto dane wyjściowe:
# stap sigmon.stp -x 12647 SIGKILL -v
Pass 1: parsed user script and 85 library script(s) using 146868virt/23716res/3024shr/21404data kb, in 110usr/10sys/116real ms.
semantic error: while resolving probe point: identifier 'kernel' at /usr/share/systemtap/tapset/signal.stp:60:37
source: probe __signal.send.send_sigqueue = kernel.function("send_sigqueue")
^
semantic error: missing x86_64 kernel/module debuginfo under '/lib/modules/2.6.18-308.13.1.el5/build'
semantic error: while resolving probe point: identifier '__signal' at :39:21
source: probe signal.send = __signal.send.send_sigqueue,
^
semantic error: no match
semantic error: while resolving probe point: identifier 'signal' at sigmon.stp:30:7
source: probe signal.send
^
Pass 2: analyzed script: 1 probe(s), 0 function(s), 0 embed(s), 0 global(s) using 150348virt/28920res/4696shr/24884data kb, in 30usr/40sys/81real ms.
Pass 2: analysis failed. Try again with another '--vp 01' option.
Missing separate debuginfos, use: debuginfo-install kernel-2.6.18-308.13.1.el5.x86_64
Czy ktoś miał szczęście, używając komendy stap? Czy jest inny sposób, aby dowiedzieć się, co zabija mój proces?
źródło
Odpowiedzi:
SystemTap wygląda na to, że nie może znaleźć symboli debugowania dla twojego jądra. Czy zainstalowałeś wymagane pakiety debugowania jądra dla uruchomionego jądra? Przewodnik po SystemTap mówi:
źródło