Bir sürecin ikili yolunu nasıl belirleyebilirim?

23

Bir işlemin başlatıldığı dizin / disk konumunu bulmanın bir yolu var mı? / Proc mount'unun farkındayım ama bunun içine gerçekten bakmayacağım.

    
sordu SuperJumbo 16.06.2011 12:47

4 cevap

29

/proc yolu, pid'e karşılık gelen dizindeki exe bağlantısını denetlemektir.

Haydi update-notifier ile bir örnek alalım:

Bu örnekteki 15421 olan pidi bulun:

[email protected]:~$ ps x | grep update-notifier
 2405 pts/4    S+     0:00 grep update-notifier
15421 ?        Sl     0:00 update-notifier

Sembolik bağlantıya bakın:

[email protected]:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to '/usr/bin/update-notifier'
    
verilen cevap Egil 16.06.2011 12:56
11

Belki which sizin aradığınız şeydir. Örneğin, sistemimde

which firefox 

döner

/usr/bin/firefox

Ayrıca bkz. Solaris, Ubuntu, Suse veya Redhat Linux üzerinde Çalışan Uygulama Yolunu Bulun .

    
verilen cevap N.N. 16.06.2011 12:51
3

Mevcut bir işlem kimliğinizi sağlayarak şunları kullanabilirsiniz:

readlink -f /proc/$pid/exe

(bir işlemin işlem kimliğine göre $pid değerini değiştirin)

İşlemin size ait olmaması durumunda, ön yüzde% co_de değerini koymanız gerekir.

Komutun konumunu belirlemek için bir örnek sudo :

  1. firefox çıktısı:

    22831 grep --color=auto firefox
    28179 /usr/lib/firefox-4.0.1/firefox-bin
    
  2. ps ax -o pid,cmd | grep firefox işlem kimliğidir, bu nedenle şunları çalıştırmalısınız:

    readlink -f /proc/28179/exe
    

    çıktılar:

    /usr/bin/firefox
    
verilen cevap Lekensteyn 16.06.2011 12:57
1

Bir terminale gitmek için Ctrl + Alt + T tuşlarına basın ve şunu yazın:

ls -al /proc/{pid}/fd  

ve sonra çıkışı kontrol et

Bu, işleminizin ilişkili olduğu tüm dosyaları listeler ...

    
verilen cevap xiaoyifang 04.07.2018 07:24

Etiketlerdeki diğer soruları oku