Как узнать абсолютный путь запущенного процесса? на solaris

Как узнать абсолютный путь запущенного процесса? на solaris

это команда для просмотра пути процесса в Linux

ps -auxwe | grep 24466    ( 24466 is only example )

но пожалуйста, посоветуйте, возможно ли просмотреть путь запущенного процесса на Solaris

если да, то каков синтаксис ps для Solaris?

решение1

Вы можете использовать pwdx в Solaris и Linux.

pwdx<pid_number>

пример:

pwdx $$
25711:  /export/home/pippo

решение2

Как узнать абсолютный путь запущенного процесса?

Если под «абсолютным путем» вы подразумеваете полный путь к работающему двоичному файлу, то это работает на моей установленной копии Solaris 11:

pmap PID | grep -v ':' | head 1 | awk '{ print $4 }'

Замените PIDна идентификатор интересующего вас процесса.

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

К сожалению, вам нужен доступ на чтение карты процесса, чтобы получить эту информацию. Я не знаю способа получить то, что вы ищете, без этого доступа.

Редактировать: Также есть /proc/[PID]/path/a.outSolaris 11, который является мягкой ссылкой на фактический двоичный файл:

В Баше:

bash-4.1$ readlink /proc/$$/path/a.out
/usr/bin/bash

Обратите внимание, что это /proc/$$/path/a.outлучше, чем /proc/self/path/a.out:

bash-4.1$ readlink /proc/self/path/a.out
/usr/bin/readlink

К сожалению, если у вас нет доступа к карте процессов через pmap, у вас, скорее всего, не будет доступа и к /proc/[PID]/path/a.out, поскольку все разрешения /proc/[PID]/pathдля моей установки Solaris 11 равны 500 — только владелец и пользователь root имеют права на чтение и выполнение в этом каталоге.

решение3

/usr/ucb/ps auxwwww | grep 6851 сработал у меня на SunOS servername01 5.10 Generic_147440-25 sun4u sparc SUNW,Sun-Fire-V490

Связанный контент