NFS 造成殺不掉的 process

原因詳見這篇, 當一個 process 進入 uninterruptible sleep 時 (ps 的狀態顯示 D), 表示這個 process 不能被中斷, 所以即使用 kill -9 也沒用。一個 process 進入 uninterruptible sleep 時, 表示它正在等 I/O。所以, 唯一的解法是讓它等到 I/O 或是放棄等 I/O。若使用的裝置是外接式硬碟、光碟機之類的, 可以試著重接讓 process 離開狀態 D。若等待的裝置是 NFS 的話, 需要另外的解法。

NFS 官網的 D12 描述的解法如下:
Sometimes it can at a couple of interations of the "kill processes" then "umount -f" cycle until the filesystem is unmounted, but it usually works.
If all else fails, you can still unmount the partition on which the processes are hanging using the "umount -l" command. This causes the stuck mount to become detached from the file system name space hierarchy on your client, and will thus no longer be visible to other processes
結論是: 重覆 kill、umount -f、mount 多次應該會有效。再不行的話, 改試看看 umount -l。我自己試的時候是 「umount -l, mount, kill (失敗), umount -f」 結果就好了。

留言

這個網誌中的熱門文章

(C/C++ ) 如何在 Linux 上使用自行編譯的第三方函式庫

熟悉系統工具好處多多

virtualbox 使用 USB 裝置