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

Найдите место, откуда начался процесс в Linux

Если у меня есть вывод ps, подобный приведенному ниже, есть ли способ определить, где находится слово «blah» в файловой системе? В моей конкретной ситуации -p указывает, на каком порту должно работать приложение.

user 22913 22470  0 09:58 ?        00:00:06 ./blah -p 12345

Мой вопрос в основном заключается в том, можно ли найти местоположение исполняемого файла с учетом PID или порта приложения. Используемый дистрибутив - Redhat.

Есть ли какая-нибудь информация?

ps -ef

пс -eLf

ps axms

Или, может быть

пс -o cmd = -p $ PID

Это может быть более полезно:

readlink -f / proc / $ PID / exe

?

Как предложил Барт,

readlink -f /proc/$PID/exe

должен дать вам ваш ответ.

Другой способ использования readlink может быть readlink -f /proc/$PID/cwd. Это отобразит текущий рабочий каталог процесса, что может быть удобно, если вы выполнили сценарий bash, поскольку в этом случае ссылка на exe будет / bin / bash с аргументом ./blah.

И в качестве дополнительной случайной информации вы можете просто перейти в / proc / $ PID. Как уже упоминалось, будут символические ссылки для cwd и exe, а также для того, где находится корневой каталог этого процесса (полезно, если chrooted) ls -l покажет, куда они указывают, что, по сути, и делает readlink.

sudo /usr/sbin/lsof -p 22913