首頁 > 軟體

如何使用xkill命令殺掉Linux進程/未響應的程式

2020-06-16 17:58:55

我們如何在Linux中殺掉一個資源/進程?很明顯我們會找出資源的pid然後用kill命令。

說的更明白一點,我們可以找到某個資源(比如terminal)的PID:

  1. $ ps -A | grep -i terminal
  2. 6228?00:00:00 gnome-terminal

上面的輸出中,‘6288’就是進程(gnome-terminal)的pid, 使用下面的命令來殺掉進程。

  1. $ kill 6228

kill命令會傳送一個信號給該pid的進程。

另外一個方法是我們可以使用pkill命令,它可以基於進程的名字或者其他的屬性來殺掉進程。同樣我們要殺掉一個叫terminal的進程可以這麼做:

  1. $ pkill terminal

注意: pkill命令後面進程名的長度不大於15個字元

pkill看上去更加容易上手,因為你你不用找出進程的pid。但是如果你要對系統做更好的控制,那麼沒有什麼可以打敗'kill'。使用kill命令可以更好地審視你要殺掉的進程。

我們已經有一篇覆蓋了kill、pkill和killall命令細節的指導了 http://www.linuxidc.com/Linux/2013-10/91544.htm

對於那些執行X Server的人而言,有另外一個工具稱為xkill可以將進程從X Window中殺掉而不必傳遞它的名字或者pid。

xkill工具強制X server關閉與它的客戶程式之間的聯絡,其結果就是X resource關閉了這個客戶程式。xkill是X11工具集中一個非常容易上手的殺掉無用視窗的工具。

它支援的選項如在同時執行多個X Server時使用-display選項後面跟上顯示號連線到指定的X server,使用-all(並不建議)殺掉所有在螢幕上的所有頂層視窗,以及幀(-frame)引數。

要列出所有的客戶程式你可以執行:

  1. $ xlsclients

 

範例輸出

  1. ' '/usr/lib/libreoffice/program/soffice
  2. deb gnome-shell
  3. deb Docky
  4. deb google-chrome-stable
  5. deb soffice
  6. deb gnome-settings-daemon
  7. deb gnome-terminal-server

如果後面沒有跟上資源id,xkill會將滑鼠指標變成一個特殊符號,類似於“X”。只需在你要殺掉的視窗上點選,它就會殺掉它與server端的通訊,這個程式就被殺掉了。

  1. $ xkill

使用xkill殺掉進程

需要注意的是xkill並不能保證它的通訊會被成功殺掉/退出。大多數程式會在與伺服器端的通訊被關閉後殺掉。然而仍有少部分會繼續執行。

需要指出的點是:

  • 這個工具只能在X11 server執行的時候才能使用,因為這是X11工具的一部分。
  • 不要在你殺掉一個資源而它沒有完全退出時而困惑。
  • 這不是kill的替代品

我需要在linux命令列中使用xkill麼

不是,你不必非在命令列中執行xkill。你可以設定一個快捷鍵,並用它來呼叫xkill。

下面是如何在典型的gnome3桌面中設定鍵盤快捷鍵。

進入設定-> 選擇鍵盤。點選'+'並新增一個名字和命令。點選點選新條目並按下你想要的組合鍵。我的是Ctrl+Alt+Shift+x。

Gnome 設定

新增快捷鍵

下次你要殺掉一個X資源只要用組合鍵就行了(Ctrl+Alt+Shift+x),你看到你的滑鼠變成x了。點選想要殺掉的x資源就行了。


via: http://www.tecmint.com/kill-processes-unresponsive-programs-in-ubuntu/

作者:Avishek Kumar 譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-06/118699.htm


IT145.com E-mail:sddin#qq.com