Linux - Bir işlemin geçerli çalışma dizinini bulmak?


11

Bir işlem PID X'im varsa, hangi dizinde çalıştığını nasıl bulabilirim? Birlikte görebilirsiniz ps aux | grep Xonunla çağrılan olduğunu tam komut satırı. Ancak bu durumda ./script.sh, ve hangisinin script.shçalıştığını görmek istiyorum .

Yanıtlar:


11

Sorun /proc/PID/exe, kabuk komut dosyaları için kabuğun konumunu göstermesidir. Sorun /proc/PID/cwdşu ki işlemin geçerli çalışma dizinini gösterir . İşlem dizinleri değiştirirse, bu sembolik bağlantının hedefine yansıtılır.

Bu, komut dosyası başlatıldığında $ PWD'nin ne olduğunu gösterecektir ("PID" gördüğünüz yerde ilgilendiğiniz işlem kimliğini değiştirin):

procdir=$(grep -az "\bPWD" /proc/PID/environ); echo $procdir

ya da sadece:

grep -az "\bPWD" /proc/PID/environ

Bu, göreli veya mutlak bir dizinin kullanılıp kullanılmadığını görebilmeniz için başlatan komutu gösterecektir:

proccmd=$(grep -az PROC_NAME /proc/PID/cmdline); echo $proccmd

ya da sadece:

grep -az PROC_NAME /proc/PID/cmdline

Bunlar birlikte size hangi komut dosyasının çalıştırıldığını göstermelidir. Çünkü tek ./ihtiyacınız olan şey başlamak procdir.


pwdx bundan daha iyidir.
Bjorn

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.