Eu tenho um programa a.out rodando em /tmp/test . Se eu listar /proc/$(pgrep a.out)/cwd
, é um link simbólico para /tmp/test .
Agora, eu vinculo /mnt/othertest em /tmp/test com mount -o bind /mnt/othertest /tmp/test
. Assim, esta nova montagem é empilhada e o antigo /tmp/test fica oculto.
Ainda assim, como o a.out foi lançado antes do comando mount, ele tem acesso ao caminho antigo.
O problema que quero resolver é como saber se um processo com cwd definido como /tmp/test se refere ao diretório de /mnt/othertest ou não.
Para arquivos abertos, é fácil, posso usar fdinfo do proc pseudo-filesyste e ler o mount id, mas não encontrei essas informações para cwd . Eu poderia verificar a hora de início do processo e compará-la com a hora em que o mount foi iniciado, mas devido a possíveis bifurcações, pode estar errado.