#!/usr/bin/perl # デバイスモジュール削除マネージャ # rmdev module if($#ARGV<0) { print STDERR "rmdev: rmmod+device cleanup\n\n"; print STDERR "usage:\n"; print STDERR " rmdev modulename\n"; exit(1); } $module=shift; # モジュールインストール system("rmmod $module"); if($? != 0){ print STDERR "rmmod failed\n"; exit(1); } # デバイスファイル管理テーブル open(F,"/tmp/insdev.tab"); @devtab=; close(F); # 削除 for($j=0;$j<$#devtab+1;$j++){ if($devtab[$j]=~/(\S+) (\S+)/){ if($1 eq $module) { print STDERR "unlink '$2'\n"; $devtab[$j]=''; unlink($2); } } } open(F,"> /tmp/insdev.tab"); for($j=0;$j<$#devtab+1;$j++){ if($devtab[$j] ne '') { print F "$devtab[$j]\n"; } } close(F); #print STDERR @devtab;