[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gentoojp-users 88] Re: USBデバイスのhot-UNPLUGについて
鈴木洋二でございます。
On Sun, 19 Jan 2003 23:49:49 +0900 (JST),
In article <20030119.234949.33566294.makoto@xxxxxxxxxxxxxx>,
"山" == makoto@xxxxxxxxxxxxxx writes:
(中略)
山》この結果、とても不思議ですね。手元の環境では再現できないです。違うeend()
山》が実行されてるのかな…?
山》$ source /sbin/functions.sh
山》$ eend 0
山》$ echo $?
山》0
山》$
僕のところでも、別のファイルに eend() 関数をコピーして eend 0 を実行
するスクリプトで試したのですが、やはり $? が 0 になりました。なのに
hot-unplug の場合は $? が 1 になったのでしばらく頭をひねったのですが。
hot-unplug の場合、このスクリプトは、
/sbin/hotplug -> /etc/hotplug/net.agent -> /etc/init.d/net.usb0
という順序で実行され、最初の /sbin/hotplug はカーネルから起動される
ので、標準出力(ファイルディスクリプタ 1)が普通じゃない状態になっている
のではないかと。その結果、eend() 関数中の echo に失敗する、と。
普通にターミナルから実行したら、標準出力が普通なので echo は問題無く、
eend() の終了ステータスも 0 になる、のではないかと。
かように推測しているのですが、これを確かめるにはカーネルの深淵に踏み
込まなければならないので…… *_*
# カーネルソース中で /sbin/hotplug がコールされていそうなあたりを見て
# みたのですが、call_usermodehelper() でメゲました。 ;_;
----------------------------------------------------------------------
suzuki-youji@xxxxxxxxxxxxxx 鈴木洋二