Bir dosyayı kilitleme işlemi nasıl belirlenir?


35

Kilit dosyasını kullanan tam işlemi bilmek istiyorum. Düzeltmek istemiyorum ama sadece sistemimin ne yaptığını bilmek için. Nasıl öğrenebilirim?

Örneğin, bu mesaj:

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Yine, ben sadece bunu kullanarak işlemi tanımlamak istediğiniz, değil bunu düzeltmek için nasıl.

Yanıtlar:


38

Rezil var lsof:

sudo lsof /var/lib/dpkg/lock
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
aptitude 4974 root    3uW  REG   8,23        0 815673 /var/lib/dpkg/lock

Bu durumda yetenek dosya kullanıyor. Hangi kullanıcının dosyayı kilitlediğinden emin değilseniz, root kullanmalısınız. Bir sürü şey için de faydalıdır, ne yazık ki Ubuntu ile birlikte gelmediği için ilk önce onu yüklemelisiniz.

Ölümlülerin geri kalanı için fuseremir var. Bu, işlemin adı yerine sadece PID'yi döndürdüğü için özeldir:

➜  ~  sudo fuser /var/lib/dpkg/lock
/var/lib/dpkg/lock:   4974

Burada 4974 olan dosya ve PID'nin yazdığını söylüyor, bu yüzden kim olduğunu araştırmalıyız:

➜  ~  ps 4974
  PID TTY      STAT   TIME COMMAND
 4974 pts/1    Sl+    0:06 aptitude

6
Neden lsofrezildir? Bununla ilgili bazı sorunlar var mı?
Ruslan

3
@Ruslan Evet, uçsuz bucaksız kullanıcıların, sistem yöneticilerinin istediklerinin aksine sistemlerin gerçek kullanımını bilmelerini sağlar ...
Braiam

@Braiam Sağ elinde çok fazla bilgi tehlikeli bir şey olabilir mi? ^ -_- ^
Peter David Carter

Tek satıra ikinci seçenek:ps $(sudo fuser /var/lib/dpkg/lock)
wjandrea

8

lslocks bunu yapmanın basit bir yoludur.

lslocks |grep /var/lib/dpkg/lock

İşlem kimliğini işlemek için kabuk kullanmak için:

for pid in `lslocks -rn | grep /var/lib/dpkg/lock|awk '{print $2}'`;
do 
    echo $pid; 
done

Evet. lslocksgitmek için en iyi yol budur. Kullanmak lsofbana şu hatayı verdi: "lsof: WARNING: stat () fuse.gvfsd-fuse dosya sistemi / run / user / 1000 / gvfs stat'ünü olamaz. Çıktı bilgileri eksik olabilir"
Nav

@Nav bu bir hata değil, bir UYARI.
Braiam
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.