Não sei se entendi seu problema corretamente:
Nos meus sistemas Linux, ps ax
(ou ps -Alf
) já mostra o caminho completo do executável que foi usado para iniciar o respectivo processo (pelo menos em muitos casos). Você poderia usar isso?
Por exemplo, em uma caixa com o Debian Stretch (trecho):
root@charon:~# ps -Alf
4 S message+ 447 1 0 80 0 - 11283 SyS_ep Aug31 ? 00:00:00 /usr/bin/dbus-daemon --system --address=syste
4 S root 468 1 0 80 0 - 11625 SyS_ep Aug31 ? 00:00:03 /lib/systemd/systemd-logind
4 S root 674 1 0 80 0 - 3634 core_s Aug31 tty1 00:00:00 /sbin/agetty --noclear tty1 linux
4 S root 708 1 0 80 0 - 17486 core_s Aug31 ? 00:00:00 /usr/sbin/sshd -D
5 S ntp 712 1 0 80 0 - 24467 core_s Aug31 ? 00:00:36 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 109
Assim, para obter o caminho completo, você teria que grep a última parte de cada linha, por exemplo:
root@charon:~# ps -Alf|awk '{print $15}'
/usr/bin/dbus-daemon
/lib/systemd/systemd-logind
/sbin/agetty
/usr/sbin/sshd
/usr/sbin/ntpd