Podemos presumir que os arquivos não foram alterados no disco (pelo menos, nenhum arquivo com o mesmo nome foi adicionado ou excluído) e /proc/[pid]/cmdline é confiável (veja a nota abaixo)?
De acordo com proc (5) : /proc/[pid]/environ contém as variáveis de ambiente iniciais (que não será alterado mesmo que o próprio programa altere as variáveis de enventimento dentro), incluindo PWD e PATH .
Portanto:
se o caminho em cmdline começar com o (s) nome (s) dir. relativo (s), você poderá usar PWD (em /proc/[pid]/environ ) como o caminho base e resolver o caminho relativo;
Se o caminho em cmdline for o nome do próprio programa, você poderá percorrer cada diretório em PATH (em /proc/[pid]/environ ) e o destino será o arquivo primeiro com o mesmo nome.
Notas laterais:
/proc/[pid]/exe parece ser o arquivo não referenciado (por exemplo, /usr/bin/python3.6 em vez de /usr/bin/python3 ou /usr/bin/python se forem links simbólicos);
/proc/[pid]/cmdline também pode conter informações estranhas para alguns programas, portanto pode não ser confiável. Isso parece estar relacionado ao programa, mas não ao kernel, e eu não observei nenhum script python se comportando desta maneira (e editar sys.argv em python parece não afetar /proc/[pid]/cmdline ). Minha pergunta também falou um pouco sobre isso.