1

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

find ./ -name mysqli.so -print

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

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

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

1 ответ1

2

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

Далее это выглядит подозрительно. Поскольку любой процесс может изменить текст , который отображается в списке процессов (некоторые программы , такие как АПС делать это все время для законных целей), так что это может быть , что ваша машина была p0wned и что процес не реально 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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .