Next Previous Contents

4. 等待卸下檔案系統可真是漫長

有些人可能眼睜睜等著 60 秒的 timeout 時間到並且想著 如果要退出磁片這可真是太久了.. 也許我可以直接對磁碟下 sync 然後拿出磁片而且沒有人會注意到。 讓我來建議一個 比較理智的替代方案。 首先呢,你可以改變 timeout 的值,但是在使用後的15秒或其他秒數就讓系統卸下檔案系統 似乎有點沒效率。 實際上有一個方法可以讓檔案系統自動掛載程式卸下檔案系統。如果你送一個(用 kill 程式) 訊號 SIGUSR1 給檔案系統自動掛載程序, 它會卸下任何它可以卸下的。但是人們開始在他們的視窗管理程式上做一個卸下檔案系統的按鈕之前,還有一個小問題。

檔案系統自動掛載程序是被 root 所執行的,所以它只能接受 root 的訊號。 你想用檔案系統自動掛載程式可能有半數以上的理由是因為你不是系統管理員卻想要 掛入和卸下檔案系統。 寫一個可以設定使用者身份識別碼的C程式可以輕易達成,但這樣的方法並不好。 不管怎樣,藉由 sudo 程式也可以允許使用者送出一些適當的 kill 訊號。 唯一的問題是 sudo 並不允許你以 ` 來執行次命令,所以你必須自己找出 autofs 的 程序識別碼。 你應該有一個程式叫做 killall,這可以讓你做到這些: (幸好有這些個建議)

ALL     ALL=NOPASSWD:/usr/bin/killall -USR1 automount
否則,你要允許你的使用者送 -SIGUSR1 給所有的程序。 這對一些程式有不同的影響;它可能會使某些視窗管理器重新啟動,而且終止 xemacs。 所以在這兒希望 killall 沒有緩衝區溢出的問題...


Next Previous Contents