Назад | Перейти на главную страницу

Как отследить файл, с которого выполняется процесс на диске?

У меня на моем сервере запускается процесс, который, похоже, изменяет то, что видит ps / top, поэтому я не знаю имени файла или пути к нему, поскольку он его скрывает (это сценарий perl). Как я могу отследить, где находится файл на диске?

Под /proc/<pid>/ существуют различные файлы, которые могут помочь вам найти виновника.

  • cmdline это командная строка, используемая для запуска процесса (включая параметры). К сожалению, это, по-видимому, также изменяется, если процесс изменяет свою собственную командную строку.
  • cwd это рабочий каталог процесса, который также может помочь
  • exe указывает на запущенный исполняемый файл (однако для сценариев Perl, которые будут интерпретатором Perl, поэтому могут быть не так полезны)
  • status содержит различную информацию. В частности, может быть интересен родительский процесс (Ppid); это будет процесс, запустивший сценарий - может быть полезно выяснить, кто его запускает.
  • под fd, вы найдете список файлов, открытых в данный момент (в виде символических ссылок); Это должно помочь понять, что он делает

В Linux вы можете проверить символическую ссылку / proc / [PID] / exe, которая указывает на исполняемый файл.