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