Réponses:
Le problème /proc/PID/exe
est que, pour les scripts shell, il indique l'emplacement du shell. Le problème avec /proc/PID/cwd
est qu'il affiche le répertoire de travail actuel du processus. Si le processus change de répertoire, cela se reflète dans la cible de ce lien symbolique.
Cela montrera ce qu'était $ PWD au moment du démarrage du script (remplacez l'ID de processus qui vous intéresse par où vous voyez "PID"):
procdir=$(grep -az "\bPWD" /proc/PID/environ); echo $procdir
ou simplement:
grep -az "\bPWD" /proc/PID/environ
Cela montrera la commande qui l'a démarrée afin que vous puissiez voir si un répertoire relatif ou absolu a été utilisé:
proccmd=$(grep -az PROC_NAME /proc/PID/cmdline); echo $proccmd
ou simplement:
grep -az PROC_NAME /proc/PID/cmdline
Ensemble, ceux-ci devraient vous montrer quel script est en cours d'exécution. Car on a commencé avec ./
tout ce dont vous avez besoin procdir
.