Risposte:
Il problema /proc/PID/exe
è che, per gli script di shell, mostra la posizione della shell. Il problema /proc/PID/cwd
è che mostra l' attuale directory di lavoro del processo. Se il processo cambia directory, ciò si riflette nella destinazione di quel collegamento simbolico.
Questo mostrerà quale era $ PWD al momento dell'avvio dello script (sostituisci l'ID del processo che ti interessa dove vedi "PID"):
procdir=$(grep -az "\bPWD" /proc/PID/environ); echo $procdir
o semplicemente:
grep -az "\bPWD" /proc/PID/environ
Questo mostrerà il comando che lo ha avviato in modo da poter vedere se è stata utilizzata una directory relativa o assoluta:
proccmd=$(grep -az PROC_NAME /proc/PID/cmdline); echo $proccmd
o semplicemente:
grep -az PROC_NAME /proc/PID/cmdline
Insieme, questi dovrebbero mostrarti quale script è in esecuzione. Per uno iniziato con ./
tutto ciò che serve è procdir
.