Verder Terug Inhoud

5. Dat lange wachten voor de unmount

Een aantal van jullie zal die 60 seconden timeout bekijken en denken, dat is een lange tijd om te wachten totdat een diskette wordt uitgeworpen...Wellicht dat ik gewoon de disks sync(hroniseer) en ze er gemount uithaal, niemand zal het opmerken. Laat me je verstandiger alternatieven voorstellen. Ten eerste kun je de timeout wijzigen. Maar dat zou inefficiënt zijn; het systeem vertellen het zaakje pas na slechts 15 seconden of iets dergelijks te unmounten. Afhankelijk van je setup, kun je misschien simpelweg als normale gebruiker de umount opdracht uitvoeren. Maar in feite is er een manier om het programma automount te vragen te unmounten. Als je (met het programma kill) het signaal SIGUSR1 naar het automountproces stuurt, dan zal het alles unmounten wat het kan. Maar voordat mensen unmount knoppen op hun window managers beginnen te maken; er is een klein probleem.

Het automountproces wordt door root uitgevoerd, en het zal alleen signalen van root accepteren. Een van de redenen waarom je waarschijnlijk aan automounting doet is dat je zonder root te zijn kunt mounten en unmounten. Het zou niet zo moeilijk zijn een suid-root C programma te schrijven die het vuile werk opknapte. Door echter gebruik te maken van sudo is het mogelijk gebruikers toe te staan het juiste kill-signaal te zenden. Het enige probleem is dat sudo je geen subopdrachten laat gebruiken, wat je moet doen om de huidige PID op te sporen. Je zou een programma genaamd killall moeten hebben, die je het volgende laat doen:

ALL     ALL=NOPASSWD:/usr/bin/killall -USR1 automount
Anders zou je al je gebruikers de mogelijkheid moeten bieden naar alle processen -SIGUSR1 te zenden. Dat heeft op programma's een divers effect; het zal een aantal window managers opnieuw in omloop laten brengen, maar het killt emacs. Dus laten we hopen dat er geen bufferoverruns in killall zijn...
Verder Terug Inhoud