5. 언마운팅으로 인한 장시간 대기

당신들 중 몇몇은 60초 시간제한을 주목하고 또 생각하고 있을지 모르는데, 그것은 플로피를 제거하고 기다리기에는 오랜 시간이다..아마도 내가 그냥 디스크를 싱크(sync)하고 마운트된 디스켓을 꺼내도 아무도 알지 못할 것이다. 나는 정상적인 대안을 제안한다. 우선, 당신은 시간제한을 변경할 수 있다. 그러나 그것은 조금 비능률적이다; 단지 15초나 또는 아무때나 시스템에게 언마운트할 것을 말하는 것. 당신의 설정에 의존해서, 보통의 사용자로써 간단히 언마운트 명령을 실행할 수도 있다. 그러나 실제로 오토마운트 프로그램에 언마운트를 요청하는 방법이 있다. 만약 당신이 (kill 프로그램을 가지고) SUGUSR1 시그널을 오토마운트 프로세스에 보낸다면, 그것은 할 수 있는 모든 것을 언마운트할 것이다. 그러나 사람들이 윈도우 매니저에 언마운트버튼을 만들기 전에 사소한 문제가 있다.

오토마운트 프로세스는 루트에 의해 실행되고, 그것은 오직 루트로부터 신호를 받는다. 당신이 오토마운팅을 사용하고 있는 이유의 절반은 루트가 되지 않고 마운트와 언마운트를 할 수 있기 때문일 것이다. suid-root C 프로그램을 만드는 지저분한 행동은 쉽다. 그러나, sudo를 이용해서 사용자가 적절한 kill 시그널을 보내도록 허용하는것은 가능하다. 유일한 문제는 sudo가 현재의 PID를 알기 위해 할 수 있는 프로세스 부명령어를 사용하지 못하게 한다는 것이다. 당신은 killall이라는 프로그램을 가지고 있어야 하는데 그것은 당신이 아래의 것을 하도록 할 것이다:

ALL		ALL=NOPASSWD:/usr/bin/killadll	-USR1	automount
			

그렇지않으면, 당신은 모든 사용자가 모든 프로세스에 -SIGUSR1 시그널을 보내도록 허용해야 한다. 그것은 프로그램들에 다양한 영향을 미친다; 어떤 윈도우매니저들은 재사용하겠지만, xemacs는 죽인다. 그래서 killall 안에서 중복실행하는 버퍼가 없기를 바란다...