Respuestas:
El problema /proc/PID/exe
es que, para los scripts de shell, muestra la ubicación del shell. El problema /proc/PID/cwd
es que muestra el directorio de trabajo actual del proceso. Si el proceso cambia de directorio, eso se refleja en el destino de ese enlace simbólico.
Esto mostrará cuál era el $ PWD en el momento en que se inició el script (sustituya el ID del proceso que le interesa donde ve "PID"):
procdir=$(grep -az "\bPWD" /proc/PID/environ); echo $procdir
o simplemente:
grep -az "\bPWD" /proc/PID/environ
Esto mostrará el comando que lo inició para que pueda ver si se utilizó un directorio relativo o absoluto:
proccmd=$(grep -az PROC_NAME /proc/PID/cmdline); echo $proccmd
o simplemente:
grep -az PROC_NAME /proc/PID/cmdline
Juntos, estos deberían mostrar qué script se está ejecutando. Para empezar, ./
todo lo que necesitas es procdir
.