Bir işlemin ikili dosyasına giden yolu nasıl belirlerim?


30

Bir işlemin başlatıldığı dizin / disk konumunu bulmanın bir yolu var mı? / Proc mount'un farkındayım ama gerçekten nereye bakacağımı bilemiyorum.


1
İkiliğin konumunu veya işlemin başladığı dizini mi kastediyorsunuz?
Lekensteyn

Belirsizlik için üzgünüm, ikiliyi kastediyorum
SuperJumbo

Yanıtlar:


37

Yol , ihaleye karşılık gelen dizindeki bağlantıyı /procincelemektir exe.

Bir örnek verelim update-notifier:

Bu örnekte 15421 olan pid'i bulun :

egil@gud:~$ ps x | grep update-notifier
 2405 pts/4    S+     0:00 grep update-notifier
15421 ?        Sl     0:00 update-notifier

Sembolik linke bakınız:

egil@gud:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to `/usr/bin/update-notifier'

Evet, neredeyse oradaydım. Efsane, teşekkür ederim.
SuperJumbo


6

Kullanılabilir bir işlem kimliğiniz olması koşuluyla şunları kullanabilirsiniz:

readlink -f /proc/$pid/exe

( $pidbir işlemin işlem kimliği ile değiştirilir )

İşlem size ait değilse sudo, önüne koymak zorundasınız .

Komutun yerini belirlemek için bir örnek firefox:

  1. Çıktısı ps ax -o pid,cmd | grep firefox:

    22831 grep --color=auto firefox
    28179 /usr/lib/firefox-4.0.1/firefox-bin
    
  2. 28179 işlem kimliği olduğundan, çalıştırmanız gereken:

    readlink -f /proc/28179/exe
    

    hangi çıktılar:

    /usr/bin/firefox
    

2
/proc/$pid/exeİkili yanlışlıkla siliniyorsa, ile serin şeyler yapabilirsiniz, ile geri yükleyebilirsiniz:dd if=/proc/$pid/exe of=restored-binary
Lekensteyn

1

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

ls -al /proc/{pid}/fd  

ve sonra çıkışı kontrol edin

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


Lütfen düzenlemelerimi gözden
geçirebilir

0

Diğer cevaplardaki tüm komutlar iyidir, fakat daha da fazlasını yapabilirdiniz - bazı işlemlerin aslında işlem listesine girmeden önce nasıl yürüdüğünü görebilirsiniz.

Terminalde çalıştırın:

top

Çalışırken, klavyeye bastığınızda C, yürütülen işlemlerin komutunu alırsınız.

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.