На HPUX, как мне перечислить полный путь к исполняемому файлу для всех запущенных процессов?

787
Per

Что мне нужно: список всех запущенных в настоящий момент исполняемых файлов с указанием их полного пути.

Что-то вроде этого:

1234 / full / path / to / исполняемый 4567 / full / path / to / executetable2 

Используя UNIX95= ps -exo pid,commя могу получить список с PID и такими командами, как это

11146 / opt / wbem / lbin / cimprovagt 0 4 8 root IOTreeModule 8338 / opt / ssh / libexec / sftp-server 16684 postgres: sfmdb evweb [local] idle 2518 / usr / sbin / stm / uut / bin / tools / monitor / WbemWrapperMonitor 2264 / usr / sbin / psb / bin / diagtxd 8340-ш 7772 sshd: root @ pts / 0 8333 sshd: root @ pts / 1 7777 / opt / ssh / libexec / sftp-server 

Это так близко, что мне удалось использовать ps, но это не достаточно хорошо:

  • Некоторые строки не включают полный путь (очевидно, потому что они не запускаются с использованием полного пути).
  • Дополнительные данные после имени исполняемого файла (мне нужно поддерживать исполняемые файлы с пробелами в имени, чтобы я не мог просто разбить строку)

Таким образом, я пришел к выводу, что psне поймать меня до конца.

Есть ли эквивалент Linux / proc, где / proc / / exe указывает на исполняемый файл? Если нет, есть ли другой способ сделать это?

Заранее спасибо,

1

1 ответ на вопрос

0
Per

pfiles <pid> может перечислить полный путь к исполняемому файлу.

Пример:

Фрагмент из UNIX95=1 ps -efo pid,comm

 1666 cimprovagt 

Теперь давайте запустим pfiles 1666

1666: /opt/wbem/lbin/cimprovagt 0: S_ISCHR mode:666 dev:64,3 ino:124 uid:2 gid:2 rdev:3,2 flags = O_RDONLY|O_LARGEFILE file = /dev/null 

Первая строка показывает полный путь к исполняемому файлу. Это достаточно хорошо для моих целей.