我正在正常工作,突然一個程式崩潰了:它沒有回應,視窗變成灰色。之後確實出現了這條訊息,詢問該怎麼做:關閉程式或等待它回應。
我選擇關閉程序,但它沒有按預期工作:整個 ubuntu 確實凍結了,我什麼也做不了。
然後我意識到打字Ctrl + Alt + t
可以打開終端,而且它確實有效:它打開了終端。但我不知道下一步該做什麼。
所以我的問題是:如果程式凍結,從終端該怎麼辦?就我而言,它是 nautilus(我正在連接到遠端伺服器,將其用作 FTP 程式),最後我使用sudo reboot
.
太糟糕了。本來會好得多關閉無回應的程序,但我該怎麼做呢?如果我不知道無回應程式的名稱怎麼辦?
供參考,我讀過這個主題“UI 元素變得完全無回應「我不認為這裡的情況是一樣的,因為我通常不會遇到這個問題,這有點不常見,而且內存工作正常,而且機器是一台相當新的機器(英特爾酷睿 i7,8 Gb 內存) ) 。
答案1
你可以做xkill
。這個漂亮的小實用程式會自動攻擊您點擊的下一個視窗。
您可以使用的另一個選項是稱為top
or 的選項htop
。尋找奇怪的進程,尤其是標記為「殭屍」或佔用大量系統資源的進程。然後你可以使用密鑰殺死它K。使用終止代碼 9,因為這會導致進程立即強制終止。
說不好的程序是nautilus
。使用以下方法之一:
xkill
在終端機中使用並點擊 Nautilus 視窗。 X 將終止其會話,導致 Nautilus 崩潰。向密鑰發送垃圾郵件ESC幾秒鐘,以確保 Xkill 仍然沒有運行。killall -9 nautilus
- 運行
top
、尋找nautilus
並從頂部殺死它。
請注意,您可能需要使用sudo
權限來終止某些進程。
答案2
我們基於終端的系統的一大優勢是答案聽起來是肯定的。
control我通常做的是用- alt-切換到終端 1(你的桌面總是在終端 7)f1。
如果您知道程式是什麼,這將非常簡單:找到該任務的進程 ID 並殺死它。該任務將在終端 7 上消失,如果這修復了崩潰,您的系統將再次回應。
使用 Firefox 的範例:當您啟動 Firefox 時,它會取得一個進程 ID,您可以使用ps -ef | grep firefox
.將 Firefox 替換為您想要搜尋的任何內容。
ps -ef |grep firefox
rinzwind 5046 1484 48 19:52 ? 00:00:01 /usr/lib/firefox/firefox
rinzwind 5113 4992 0 19:52 pts/4 00:00:00 grep --color=auto firefox
(引用grep的過程是我的命令)
我的登入名稱後面的第一個數字是進程 ID。kill -9 5046
將殺死火狐:
~$ kill -9 5046
~$ ps -ef |grep firefox
rinzwind 5148 4992 0 19:54 pts/4 00:00:00 grep --color=auto firefox
Firefox 從我的桌面上消失了。
問題通常是確定正確的進程 ID:當您開啟 5 個 Firefox 會話時...取得正確的進程 ID 會是一個問題。然後您可能需要添加更多邏輯來縮小範圍。
警告:使用常識。應避免終止較低的進程 ID(500 以下)。