Что мне нужно: список всех запущенных в настоящий момент исполняемых файлов с указанием их полного пути.
Что-то вроде этого:
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 указывает на исполняемый файл? Если нет, есть ли другой способ сделать это?
Заранее спасибо,