Firefox
如何在訪問 IO (firefox) 時強制終止程序卡住
我使用 Firefox 在 sshfs 掛載點上顯示一些文件…
但是,這個掛載點碰巧斷開了;如果我無意中重新載入了一個頁面,firefox 將永遠卡住,甚至無法被殺死。
例如,我
D
在這裡仍然看到一個帶有“”的Firefox程序:$ ps aux | grep firefox plasmab 10269 0.8 4.2 3253252 344216 ? D 18:12 0:51 /usr/lib/firefox/firefox plasmab 13350 0.0 0.0 21996 1148 pts/3 S+ 19:50 0:00 grep --color=auto firefox
而這,即使在之後
killall -9 firefox
。嘗試kill -9 10269
是沒有用的。現在,我按照步驟刪除了
lock
和.parentlock
文件,但之後我仍然看到“D”程序。儘管如此,我重新啟動了 Firefox 並再次關閉它,這導致不需要的程序消失了……因此,儘管卡住了程序,但刪除了鎖定文件*並重新啟動了 Firefox。*不過有更好的方法嗎?
我懷疑這個問題可能更籠統。例如,我可能會被困在做一個簡單的
ls
. 如何殺死這種卡住的程序?
處於狀態的程序處於
D
不可中斷的睡眠狀態。在它的等待結束之前,沒有信號會殺死它。通常原因是不完整的 I/O。在您的情況下,連接雖然失去,但尚未關閉。要麼仍有一些重試要做,要麼它處於 CLOSE_WAIT 狀態。如果您等待足夠長的時間,
kill
將起作用,但只有在sshfs
放棄之後。您應該
sshfs
先終止該程序,然後再終止 firefox,這將不再需要等待,因為底層文件系統將不復存在(不再存在sshfs
)。所以,快速修復:
- 殺死 sshfs
- 殺死火狐
您可能還想
-o reconnect
研究sshfs
.