Der Befehl "find" hat 9.729 Stunden nach mysqli.so gesucht

371
Eriks

Ich habe auf dieser Site und vielen anderen gesucht, aber ich habe einen Prozess, der seit 9.729 Stunden bei 100% CPU läuft. Laut htop wird der Befehl von "root" auf meinem Debian Jessie-Webserver ausgeführt:

find ./ -name mysqli.so -print 

Ich kann nicht herausfinden, was den Befehl ausführt, und die Ausgabe einer "kill -9" an die PID hat keine Auswirkungen.

Alles andere scheint wie erwartet zu laufen - dies zeigt sich auch darin, dass ich nicht einmal wusste, dass dies ein Thema für so lange war. Da jedoch zu jeder Zeit ein ganzer CPU-Kern beschäftigt ist, möchte ich das beheben.

Das einzige, was ich nicht versucht habe, ist einen Neustart des Servers - was jedoch unpraktisch ist, da dies ein Produktionsserver ist.

1
Überprüfen Sie den übergeordneten Prozess. Arkadiusz Drabczyk vor 6 Jahren 0

1 Antwort auf die Frage

2
kostix

Versuchen Sie zunächst, es SIGSTOPzu senden, um dessen Ausführung tatsächlich zu stoppen (dies kann vom Befehl abgefangen und ignoriert werden, ist aber einen Versuch wert).

Als nächstes sieht das verdächtig aus. Da jeder Prozess den Text, der in der Prozessliste angezeigt wird, frei ändern kann (einige Programme wie MTAs tun dies ständig zu legitimen Zwecken), kann es sein, dass Ihr Computer p0wned war und dass proces nicht wirklich findetwas anderes ist (wie ein Krypto-Bergmann).

Es gibt mehrere Möglichkeiten, um herauszufinden, was es wirklich ist.

  1. Schauen Sie sich an, welche ausführbare Datei es ist:

     # stat /proc/$pid/exe 

    Sollte Ihnen zeigen, welche binäre ausführbare Datei in diesem Prozess ausgeführt wird.

  2. Die Überwachung der Dateisystemaktivität dieses Prozesses kann hilfreich sein:

    # watch vdir /proc/$pid/fd 

    Wenn es wirklich als Öffnen und Schließen vieler Dateien erscheint, ist es wahrscheinlich wirklich so find.

  3. Der Prozess darf keine Sockets geöffnet haben (in derselben /proc/$pid/fdHierarchie sichtbar) .

  4. Sie können stracees und sehen, ob es tatsächlich wiederholt Verzeichnisse öffnet und schließt - ausführen

    # strace -p $pid 

    opendirund fdopendirachten Sie auf und Syscalls.

  5. Check out debsums.

kill -SIGSTOP hat nicht funktioniert. :-( Der stat-Befehl zeigte an, dass / usr / bin / find tatsächlich der Befehl war. Die Überwachung von vdir machte nicht viel aus ... nur 5 Einträge, von denen drei / dev / pts / 2 \ waren und als markiert wurden (gelöscht strace zeigte 10 Minuten lang nichts. Eriks vor 6 Jahren 0
@Eriks, OK, Sie können also versuchen, `gdb` und` kill` zu installieren, nachdem Sie die PID Ihres laufenden `find`-Prozesses angehängt haben. Weitere Informationen finden Sie in [this] (http://www.network-theory.co.uk/docs/gccintro/gccintro_76.html). kostix vor 6 Jahren 0