Если у меня есть вывод 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