“Kesintili uyku” durumu neyi gösterir?


18

Bir Parted Magic LiveCD üzerinde çalışan Firefox'um vardı, sonra (muhtemelen) hatırlamadığım bir tuş kombinasyonunun bir sonucu olarak, ekrandan ve Görev Çubuğu / Pencere Listesinden hızla kayboldu.

Ancak:

  1. ps ax | grep firefoxaşağıdakileri (ve gereksiz grep firefoxsatırı) döndürür . Her ikisi deps GUI Görev Yöneticisi görünüşte değişmeyen RSS, VM-SIZE ve% 0 CPU kullanımı ile firefox gösterir.

    johndoe 1916 36,6 14,0 923772 504372 tty1 Sl 13:30 12:15 firefox


  2. pstree | grep firefox İadeler:

    init─┬─2 * [ROX-Filer───firefox───25 * [{ateş}]]


  3. strace -p 1916 geri döner ve görünüşte bu satırda sonsuza kadar kalır:

    futex(0xac975608), FUTEX_WAIT_PRIVATE, 1, NULL

Ps bir STAT sütun değerleri ne anlama geliyor bir cevap anlıyorum. bu S(in Sl), işlemininterruptible sleep durumda olduğunu gösterir.

Herkes devletin ne olduğunu daha ayrıntılı olarak açıklayabilir mi?

DÜZENLE

Orijinal 2. soruyu ele almak için dağıtımımla ilgili daha fazla ayrıntı içeren yeni bir soruya başlayacağım.


@Braiam - Bitti. İlk yaptığım gibi, yardım bir şekilde problemden uzaklaştı, Parted Magic'i tam zamanlı dağıtımım olarak kullandığım inancına dayanan tartışmalara dönüştü. İçtenlikle bunun bu sefer olmayacağını umuyorum :(
user66001 20:30

Yanıtlar:


18

@ msw 2. Q'unuzu ve 1'inizden bazılarını açıklayan iyi bir iş çıkardı:

B) Özel Tarama modunda rahatsız edici bir şekilde açtığım sekmeleri (en azından) kaydetmek için herhangi bir kontrol biçimini yeniden kazanmanın nispeten kolay yollarını önerir misiniz?

Bu yüzden 1. Q'nuzu biraz daha ele almaya çalışacağım:

A) Devletin ne olduğu hakkında daha ayrıntılı bilgi vermek?

Durum değerleri Sl(Bu bir küçük L harfidir):

   S    Interruptible sleep (waiting for an event to complete)
   l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

                 işlemin yaşam döngüsü

PROCESS STATE CODES
   R  running or runnable (on run queue)
   D  uninterruptible sleep (usually IO)
   S  interruptible sleep (waiting for an event to complete)
   Z  defunct/zombie, terminated but not reaped by its parent
   T  stopped, either by a job control signal or because
      it is being traced
   [...]

Daha fazla ayrıntı sinyal kılavuz sayfasında man 7 signalve bu öğretici başlıkta görülebilir : Linux işlem durumları .


İç çalışmaları anlamak için çok (!) Yararlı. Teşekkürler! +1
user66001

@ user66001 cevabı kabul et. ayrıca bana yardım et.
muneeb_ahmed

8

Firefox sürecine hiçbir şey yapmadınız. Daha önce zaten S eyaletindeydi. “Kesintili uyku” etkin bir şekilde boşta demektir. İşlem bekliyor ve girdi alındığında uyanacak. Meşgulken yakalamadığınız sürece sürecin normal durumu budur.

Pencereyi kaybettiniz. Belki başka bir masaüstüne gönderdiniz. “Normal” yolun nasıl geri getirileceği tamamen belirtmediğiniz pencere yöneticinize bağlıdır.

Pencereyi diğer araçlarla alabilirsiniz, ancak tam olarak ne olduğuna ve pencere yöneticinizin işbirliği yapıp yapmadığına bağlıdır. Wmctrl'yi deneyin . İlk olarak Firefox pencerelerini ile listeleyin wmctrl -l | grep Firefox. İlk sütundaki pencere kimliğini not edin, örneğin 0x12345678. Bir pencereyi geçerli masaüstüne geri getirmek için wmctrl -R 0x12345678; alternatif olarak, wmctrl -a 0x12345678masaüstüne geçmek için tuşunu kullanın. Ekranı en üst düzeye çıkarmak için (ekran dışındaki pencerelere bakar veya tek bir piksele küçülür), çalıştırın wmctrl -r 0x12345678 -b add,maximized_vert,maximized_horz. Alternatif olarak, pencereyi ile taşıyın ve yeniden boyutlandırın wmctrl -r 0x12345678 -e 1,50,100,1000,800. Sen Gölgelemeyi gerek veya pencereyi göstermek olabilir wmctrl -r 0x12345678 -b remove,shadedveya wmctrl -r 0x12345678 -b remove,hidden.


Teşekkürler Gilles - Bu olağandışı gelebilir, ancak hangi Window Manager'ı çalıştırdığımı bilmiyorum. LXDE olabilir (Yaklaşık LXPanel kutusunda listelenir)? Ayrıca, wmctrl dağıtımımda mevcut görünmüyor - Lütfen cehaletimi affedin, ancak wmctrl sadece indirilip çalıştırılabilir veya yüklenmelidir (bağımlılıklar vb.)?
user66001

@ user66001 LXDE bir masaüstü ortamıdır. Varsayılan pencere yöneticisi Openbox'tır (farklı bir pencereyi destekleyip desteklemediğinden emin değilim). Dağıtımınızda wmctrl yoksa, kaynağı indirip derlemeyi deneyebilirsiniz. Birkaç kütüphaneye bağlıdır, ancak hiçbiri egzotik değildir, hepsi dağıtımınız tarafından sağlanmalıdır. Varsa xdotool, bunların tümünü veya en azından yararlı olanları yapabilir, bu yüzden deneyin (kılavuzdaki pencere komutlarına ve masaüstü ve pencere komutlarına bakın).
Gilles 'SO- kötü olmayı bırak'

Ah teşekkürler. Hayır xdotoolya - "Bütün bunları yapabiliyor olabilir" demek istediğinizde, derlemeden wmctrlveya onunla gerçekleştirebileceğiniz işlemlerden mi bahsediyorsunuz ? Beni Linux kaynaklarının derlenmesi konusunda önerilen kılavuzlara yönlendirebilir misiniz (Linux ortamında yeni, Windows ortamından)?
user66001

@ user66001 Bunu kastetmiştim xdotoolve wmctrlbenzer işlevselliklere sahiptim (burada ihtiyacınız olana göre, sundukları başka şeylerde farklılık gösterirler). Linux'ta yeniyseniz, daha fazla paket içeren bir dağıtım öneririm. RHEL veya CentOS veya Scientific Linux gibi bir varyant kullanıyorsanız, Repoforge'da bir paket var . Kaynaktan derlemek istiyorsanız, bunu okuyun - ancak bulabiliyorsanız bir paket kurmak daha kolay olacaktır.
Gilles 'SO- kötü olmayı bırak'

Hangi aracın inşa edilmesi daha kolay olmalı? Ayrıca, dağıtımında bir paket yöneticisi yoksa, ne tür? Paket? biri (bu mantıksız bir soru olduğunu düşünüyorum, ama sadece bir paket bağımlılıklar listelenen sadece ikili bir paket olduğunu varsayarsak yanlış olduğunu varsayalım ve yapılandırma değişiklikleri, sormak düşündüm)?
user66001

2

X istemcilerinin bağlantılarını kaybetmeleri ve bir şekilde bu durumdan haberdar edilmemeleri mümkündür. Süreç genellikle hiçbir şeyin gelmeyeceği soketi bekleyecek ve kesintisiz bir uykuda bırakacaktır.

Yalnızca Firefox için (ve durumu başarısız bir şekilde depolamak için özel hükümler yapan Gvim veya Chrome gibi bazı programlar) için basit:

$ kill -TERM pid

işleme açık sekmeler listesini kaydetme şansı verir, ancak form içeriğine veya saklanacak başka bir duruma güvenmem.


Yerel bir X istemcisinin, özellikle bir tuşa basmanın bir sonucu olarak X sunucusuyla bağlantısını kaybetmesi olası değildir. Firefox'u öldürmek, özel tarama modunda pencereler hakkındaki bilgileri kaydetmez.
Gilles 'SO- kötü olmayı bırak

Ben faydalanmak Lazarus , sekmeleri bitişik web sitelerinden bilgi kullanılarak görünümü / düzenleme belgelere GDocs açmaya, denemek ve benim birincil gmail hesabı etrafında geçmek için Gizli Tarama modunu kullanarak değilken tüm gmail hesaplarının çıkış yapmadan (ve - Grr, Google) FF "son kez pencerelerimi ve sekmelerimi hatırla" var, bu yüzden sadece Özel Tarama modunda açık sekmeleri önemsiyorum. Bu nedenle, yukarıdaki argümanı bilmek iyi olsa da, killFF'nin bu durumda sekmelerimi koruyacağından şüpheliyim. FF'nin X'e yeniden bağlanmasının bir yolu var mı?
user66001

"FF'nin X'e yeniden bağlanmasının bir yolu var mı?" İstemci işlemi sinyal almadan pencerenin nasıl eşleştirilebileceğini / yok edilebileceğini anlayamadığım için, FF programından UI'ye soketin açık kaldığını varsayıyorum. Bir işlem bir sokete bağlı olduğu sürece, herhangi bir işlemin buna dokunabileceğini bilmiyorum. (Şimdi bu konuda düşünmeme neden olduğuna göre, bunun X sunucusu ile istemci arasında delicesine zor (yani hiç denemedim) hata ayıklaması olan bir protokol hatası geldiğinden şüpheleniyorum).
msw
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.