eject
は、4 つのイジェクト方法のうち 1 つ以上をサポートするデバイスに対して
のみ有効である。
これには、ほとんどの CD-ROM ドライブ (IDE、SCSI、独自規格)、
何種類かの SCSI テープドライブ、JAZ ドライブ、
ZIP ドライブ (パラレルポート版、SCSI 版、IDE 版)、
LS120 リムーバブルフロッピーが含まれる。
Sun SPARC と Apple Macintosh のフロッピードライブについても、
ユーザーからの成功報告がある。
eject
が動作しないのは、ほとんどの場合、
そのデバイスのカーネルドライバの制限によるものであり、
eject
プログラム自体の制限ではない。
-r, -s, -f, -q オプションで、どのイジェクト方法を用いるかを制御できる。
複数のイジェクト方法を指定することができる。
これらのオプションが全く指定されないと、eject は 4 つの方法全てを試行する
(これはほとんどの場合に上手く動作する)。
eject
は、対象デバイスがマウントされているかどうかを常に判断できるわけではない
(例えば、そのデバイスに複数の名前がある場合)。
デバイス名がシンボリックリンクである場合、
eject
はリンクを辿り、リンク先のデバイスを使用する。
対象デバイスが複数のパーティションを持ち得ると判断した場合、
eject
は、そのデバイスのマウントされたパーティションを
イジェクト前に全てアンマウントしようとする。
アンマウントに失敗すると、eject はメディアのイジェクトを中止する。
音楽 CD をイジェクトすることができる。 CD-ROM ドライブによっては、
ドライブが空である場合にトレイを開くことを拒否するものもある。
トレイクローズコマンドをサポートしないデバイスもある。
自動イジェクト機能が有効になると、
そのドライブは eject を実行すると常にイジェクトされるようになる。
全ての Linux カーネル CD-ROM ドライバが、
自動イジェクトモードをサポートするわけではない。
自動イジェクトモードの状態を確認する方法は無い。
デバイスファイルへのアクセスには適切な権限が必要である。デバイスによっては
(例えば SCSI デバイス)、 eject を root で実行しなければならなかったり、
または eject を root に setuid しておくことが必要だったりする。
名前からデバイスを発見するために用いる探索法は、以下の通りである。
名前の末尾がスラッシュで終わる場合、それを取り除く
(シェルのファイル名補完機能を使って生成された名前をサポートするため)。
名前が '.' または '/' で始まる場合は、名前をデバイスファイルまたは
マウントポイントとみなしてオープンを試みる。
オープンに失敗すると、オープン可能なデバイスファイルまたは
マウントポイントが見つかるまで、
eject は名前の先頭に '/dev/', '/media/' ,'/mnt/',
'/dev/cdroms', '/dev/rdsk/', '/dev/dsk/', './' を挿入して試す。
eject は、マウントされたデバイスを /etc/mtab でチェックする。
これに失敗すると、eject は現在マウントされていないデバイスの
マウントポイントを確認するために /etc/fstab もチェックする。
/dev/cdrom や /dev/zip のようなシンボリックリンクを作っておくことを勧める。
こうすれば
eject
は適切なデバイスを覚えやすい名前を用いて特定できるようになるからである。
キー入力数を節約するため、あなたの環境固有の設定に合わせた eject オプション
へのシェルエイリアスを作るのもよいだろう。