The eject utility is used for those removable media devices that do not have a manual eject button, or for those that do, but are managed by Volume Management (see vold(1M)). The device may be specified by its name or by a nickname; if Volume Management is running and no device is specified, the default device is used.
Only devices that support eject under program control respond to this command. eject responds differently, depending on whether or not Volume Management is running.
When eject is used on media that can only be ejected manually, it will do everything except remove the media, including unmounting the file system if it is mounted. In this case, eject displays a message that the media can now be manually ejected. If a window system is running, the message is displayed as a pop-up window, unless the -p option is supplied. If no window system is running or the -p option is supplied, a message is displayed both to stderr and to the system console that the media can now be physically removed.
Volume Management has the concept of a default device, which eject uses if no pathname or nickname is specified. Use the -d option to check what default device will be used.
When Volume Management is not running and a pathname is specified, eject sends the eject command to that pathname. If a nickname is supplied instead of a pathname, eject will recognize the following list:
The list above can be reproduced with the -n option.
Do not physically eject media from a device which contains mounted file systems. eject automatically searches for any mounted file systems which reside on the device and attempts to umount them prior to ejecting the media (see mount(1M)). If the unmount operation fails, eject prints a warning message and exits. The -f option may be used to specify an eject even if the device contains mounted partitions; this option works only if Volume Management is not running.
eject can also display its default device and a list of nicknames.
If you have inserted a floppy diskette, you must use volcheck(1) before ejecting the media to inform Volume Management of the floppy's presence.
The following options are supported:
Displays the name of the default device to be ejected.
Forces the device to eject even if it is busy, if Volume Management is not running.
Displays the nickname to device name translation table.
Does not try to call the eject_popup program.
Queries to see if the media is present.
The following operands are supported:
Specifies which device to eject, by the name it appears in the directory /dev.
Specifies which device to eject, by its nickname as known to this command.
To eject a CD from its drive, while Volume Management is running (assuming only one CD-ROM drive):
example> eject cdrom0
To eject a CD-ROM drive with pathname /dev/dsk/c0t3d0s2, without Volume Management running:
example> eject /dev/dsk/c0t3d0s2
To eject a floppy disk (whether or not Volume Management is running):
example> eject floppy0
The following exit codes are returned:
The operation was successful or, with the -q option, the media is in the drive.
The operation was unsuccessful or, with the -q option, the media is not in the drive.
Invalid options were specified.
An ioctl() request failed.
Manually ejectable media is now okay to remove.
default diskette file
default CD-ROM file (deprecated)
default CD-ROM file
popup used for manually ejected media
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
A short help message is printed if an unknown option is specified. A diagnostic is printed if the device name cannot be opened or does not support eject.
An attempt was made to eject a device that has a mounted file system. A warning message is printed when doing a forced eject of a mounted device.
There should be a way to change the default on a per-user basis.
If Volume Management is not running, it is possible to eject a volume that is currently mounted (see mount(1M)). For example, if you have a CD-ROM drive at /dev/dsk/c0t3d0s2 mounted on /mnt, the following command (without Volume Management running) will work:
example> eject /dev/dsk/c0t3d0s0
since both slices s0 and s2 reference the whole CD-ROM drive.