Belirli bir X penceresini nasıl öldürebilirim


9

Üreten kimlikleri göz önüne alındığında wmctrl -l, pencere kimliğine bağlı süreci öldürmek istiyorum.

Bunu nasıl öneriyorsun? '

Yanıtlar:


10

Florian Diesch ve Serg'in diğer cevaplarında açıklandığı gibi PID'yi listelemenin yanı sıra -ic, pencereyi doğrudan kapatma seçeneğini de kullanabilirsiniz :

$ wmctrl -ic 0x02e00085

3
İşlem sıkışmışsa, pencereyi kapattığınızı fark etmeyebilir. Pencere gitmiş olacak, ancak süreç hala orada olacak ve muhtemelen CPU ve RAM tüketecek.
kasperd

9

wmctrl -lpPID kullanıyorsanız üçüncü sütunda yer alır.

Belirli bir pencere kimliği için şunları kullanabilirsiniz:

kill $(wmctrl -lp | awk '/^WID/ {print $3}')

(WID'yi pencere kimliğinizle değiştirin)


Belki awk yerine daha temiz kullanabilirsinizcol3 .
Pablo Bianchi

8

wmctrlaslında -pPID listelemek için başka bir bayrak var .

bash-4.3$ wmctrl -lp
0x0380000a  0 4410   eagle Desktop
0x04800006  0 4275   eagle XdndCollectionWindowImp
0x04800009  0 4275   eagle unity-launcher
0x0480000c  0 4275   eagle unity-panel
0x0480000f  0 4275   eagle unity-dash
0x04800010  0 4275   eagle Hud

Bunu öğrendikten sonra, bu pencerenin PID'sini çıkarmak ve kill

wmctrl -lp | awk '/Window Title/{print $3}' | xargs kill

6

Ayrıca kullanabilirsiniz xkill -id [id]. Xkill yarar diğer cevaplardan farklı çalışır - daha doğrusu penceresini kapatmadan veya doğrudan süreci öldürme yerine, pencere oluşturulan istemci bağlantısını kesmek için X sunucusunu bildirir. Bu normalde uzak bir işlem için bile işlemin sona ermesine neden olur.

Her yaklaşımın avantajları ve dezavantajları:

  • wmctrl -cBir pencereyi "incelikle" kapatır - pencere yöneticisinin kapat düğmesini kendiniz tıklamışsınız gibi. Bu işlem süreci öldürmeyebilir ve uygulama pencerenin kapatılmasını istemiyorsa veya donmuşsa, pencereyi kapatmayabilir.

  • Pid'i wmctrl -lpbirlikte kullanmanın killişlemi öldürmesi garanti edilir, ancak işlem farklı bir makinede çalışıyorsa fazladan iş gerektirebilir veya hiç çalışmayabilir.

  • xkillbir X sunucusu çökmesinden veya ağ bağlantısı kaybından kurtulmak üzere tasarlanmışsa işlemi sonlandırmayabilir, ancak çoğu uygulama bu koşullar altında kolayca çökecektir. Her durumda, pencereler kaybolacak. Ve uzak süreçler ve yerel süreçler aynı şekilde ele alınır.


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.