Odpowiedzi:
Problem /proc/PID/exe
polega na tym, że w przypadku skryptów powłoki pokazuje ona lokalizację powłoki. Problem /proc/PID/cwd
polega na tym, że pokazuje bieżący katalog roboczy procesu. Jeśli proces zmienia katalogi, jest to odzwierciedlone w celu tego dowiązania symbolicznego.
Spowoduje to wyświetlenie $ PWD w momencie uruchomienia skryptu (zamień interesujący Cię identyfikator procesu, gdzie widzisz „PID”):
procdir=$(grep -az "\bPWD" /proc/PID/environ); echo $procdir
lub po prostu:
grep -az "\bPWD" /proc/PID/environ
Spowoduje to wyświetlenie polecenia, które je uruchomiło, abyś mógł zobaczyć, czy użyto katalogu względnego czy bezwzględnego:
proccmd=$(grep -az PROC_NAME /proc/PID/cmdline); echo $proccmd
lub po prostu:
grep -az PROC_NAME /proc/PID/cmdline
Razem powinny one pokazać, który skrypt jest uruchamiany. Dla jednego, który zaczął ./
wszystko, czego potrzebujesz, to procdir
.