Команда "find" искала mysqli.so 9.729 часов

287
Eriks

Я искал на этом сайте и на многих других, но у меня есть процесс, который все время работал в течение 9 729 часов при 100% CPU. Согласно htop, эта команда запускается "root" на моем веб-сервере Debian Jessie:

find ./ -name mysqli.so -print 

Я не могу понять, что вызывает выполнение команды, и выдача «kill -9» для его PID не имеет никакого эффекта.

Все остальное, кажется, работает так, как ожидалось - о чем я даже не подозреваю, что это было проблемой так долго. Но, поскольку он все время занят целым ядром процессора, я бы хотел решить эту проблему.

Единственное, что я не пробовал, это перезагрузить сервер - что нецелесообразно, потому что это рабочий сервер.

1
Проверьте родительский процесс. Arkadiusz Drabczyk 6 лет назад 0

1 ответ на вопрос

2
kostix

Сначала попробуйте отправить его, SIGSTOPчтобы фактически остановить его выполнение (это может быть перехвачено и игнорировано командой, но стоит попробовать).

Далее это выглядит подозрительно. Поскольку любой процесс может свободно изменять текст, который отображается в списке процессов (некоторые программы, такие как MTA, делают это все время в законных целях), возможно, ваш компьютер был заблокирован, и этот процесс на самом деле не является findчем-то другим. (например, крипто-майнер).

Есть несколько способов проверить, что это на самом деле.

  1. Попробуйте посмотреть, что это за исполняемый файл:

     # stat /proc/$pid/exe 

    Должен показать вам, какой двоичный исполняемый файл запущен в этом процессе.

  2. Отслеживание активности файловой системы этого процесса может помочь:

    # watch vdir /proc/$pid/fd 

    Если это действительно выглядит как открытие и закрытие большого количества файлов, это, вероятно, действительно find.

  3. В процессе не должно быть открытых сокетов (для просмотра в той же /proc/$pid/fdиерархии).

  4. Вы можете straceэто и посмотреть, действительно ли он многократно открывает и закрывает каталоги - запустить

    # strace -p $pid 

    и смотреть opendirи fdopendirсистемные вызовы.

  5. Проверьте debsums.

kill -SIGSTOP did not work. :-( The stat command indicated that /usr/bin/find was indeed the command. the watch of vdir did not net much...just 5 entries, three of which were /dev/pts/2\ and marked as (deleted). strace did not show anything for 10 minutes. Eriks 6 лет назад 0
@Eriks, хорошо, так что вы можете попробовать установить `gdb` и` kill` его после подключения к PID вашего запущенного процесса `find`. См. [Это] (http://www.network-theory.co.uk/docs/gccintro/gccintro_76.html) для получения дополнительной информации. kostix 6 лет назад 0

Похожие вопросы