2011年1月8日 星期六

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」 結果就好了。

沒有留言:

張貼留言

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...