Если я вижу, что процесс выполняет PS использования, как я могу найти исполняемый файл?

После того как Вы закончили Усовершенствованное Руководство по созданию сценариев Bash, я предложил бы Wiki намного более полезного Greg (особенно статья Pitfalls). Это - единственный самый полезный ресурс Bash там (нравься, что кто-то доказывает меня неправильно), и значительно, активное (и активно модерируемый) Wiki даже с анонимным редактированием.

Что касается простых сценариев с помощью передовых методов, трудно судить то, что было бы усовершенствовано для Вас. Один из моих собственных самых усовершенствованных сценариев был, каждый находит и цикл по всем файлам, соответствующим обеспеченному пользователями пути таким способом, которым было бы невозможно создать строку поиска или имя файла, чтобы взломать код или выполнить своего рода инжекцию кода (К сожалению, Bash является действительно сложным, если Вы хотите использовать его надежно). Сценарий был зарегистрирован для объяснения обоснования позади всего нетривиального синтаксиса, таким образом, это могло бы иметь некоторый потенциал изучения. YMMV.

11
30.12.2011, 01:46
3 ответа

На Linux: если Вы знаете PID, Вы можете кошка cmdline файл для того файла. Например:

cat /proc/PID/cmdline

Это, вероятно, перестанет работать, если двоичный файл был перемещен после того, как программа была запущена.

И конечно:

lsof -n | grep PID | grep ' txt '

и:

ls -la /proc/PID/exe

который является символьной ссылкой на исполняемый файл.

15
27.01.2020, 19:58
  • 1
    Отметьте это /proc/PID/cmdline не имеет символа новой строки, таким образом, Вы, вероятно, захотите сделать что-то как cat /proc/PID/cmdline ; echo ''. –  Keith Thompson 30.12.2011, 02:56
  • 2
    На самом деле это имеет символы NUL, разделяющие аргументы, таким образом, Вы могли бы хотеть что-то еще более тщательно продуманное как tr '\0' ' ' < /proc/PID/cmdline ; echo '' –  Keith Thompson 30.12.2011, 03:00

Скопируйте идентификатор процесса с ps -e команда и затем выполненный следующее:

ps x | grep <process-id>
2
27.01.2020, 19:58
  • 1
    Разве это не перестанет работать, если приложение отредактирует argv [0]? iirc sendmail делает это. –  Folkert van Heusden 29.12.2011, 15:14
  • 2
    Да, это - вероятность. Тем не менее это прибывает удобное почти каждый раз. –  Aditya Patawari 29.12.2011, 15:22
[1132179] Ни один из методов ([1132557]ls[1132558], [1132559]lsof[1132560] или [1132561]cat[1132562]) в других ответах не работает на меня. Если я сделаю:[12132]Это мой победитель,:[12133]Или, чтобы получить только PID для использования его в программировании:[12134]Проверено на Kali Linux v1.0.6 (на базе Debian).[1132563]. По сравнению с простым [1132564]ls[1132565], должен признать, что это не такое уж и портативное решение, но, по крайней мере, оно работает.[1132186].
0
27.01.2020, 19:58

Теги

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