1

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

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

1234 /full/path/to/executable
4567 /full/path/to/executable2

Используя 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 -sh
7772 sshd: root@pts/0
8333 sshd: root@pts/1
7777 /opt/ssh/libexec/sftp-server

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

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

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

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

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

1 ответ1

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .