Filesystem event manager
Syntax:
fsevmgr [options] [command]
Options:
- -d
- Enable debugging output on stdout.
- -F group id
- (QNX Neutrino 7.0 or later) The group ID or name for the fsnotify device; see below.
- -f fsnotify_name
- (QNX Neutrino 7.0 or later) The name for fsnotify to register (default: /dev/fsnotify).
CAUTION:
Don't change the name of /dev/fsnotify; doing so will break the inotify system.
- -k size
- The size of each mailbox event queue, in kibibytes (default: 64 KB).
- -m
- Allow multiple events to be returned per read().
- -N group_id
- (QNX Neutrino 7.0 or later) The group ID or name for the fsevents device; see below.
- -n fsevent_name
- The name for fsevents to register (default: /dev/fsevents).
- -s size
- The size of the master event queue, in kibibytes (default: 100 KB).
- -U uid:gid
- Switch to the given user ID and group ID once running.
- -w time
- The number of milliseconds to delay before notifying io-blk instances.
- -y
- Suppress the notification of the event manager load.
- command
- A specific command to execute; one of the following:
- -c id,string
- Insert an event into the event manager queue.
- -D value
- (QNX Neutrino 7.0 or later) Set the debugging level.
- -j
- Display statistics.
- -M muid
- (QNX Neutrino 7.0 or later) Report the status of the given mailbox.
- -P path
- (QNX Neutrino 7.0 or later) Poll the event manager and display the output on the given path.
- -p
- Poll the event manager and display the output on standard output.
- -r
- Display the primary event queue on standard output.
- -S
- (QNX Neutrino 7.0 or later) Report the event manager's status.
- -u
- Notify filesystems to resynchronize themselves with the event manager.
Description:
The fsevmgr manager gathers events from the block I/O
(io-blk.so)
system and sends them to clients that want to be notified of changes to a filesystem.
It uses mailboxes to manage event queues,
creating one mailbox to serve as the master event queue, and then creating a mailbox
for each open() request from a client.
If you specify a command argument, fsevmgr completes the requested operation,
and then exits immediately.
If you don't specify a command, fsevmgr runs in the background.
By default, fsevmgr registers these interfaces in the system namespace:
- /dev/fsnotify
- Used by the inode notify system as a source of
inotify_event
structures; see
inotify_init()
in the C Library Reference.
- /dev/fsevents
- Used by clients to read events from, in
fsev_t
structures.
In order to function, the devb-* driver needs to be able to locate these names,
and needs write permission to them.
The fsevmgr advertises itself to devb-* on starting
(unless you specify the -y option).
If the devb-* driver isn't running as root (that is, you specified
a user ID and a group ID on its command line),
the group ID for the fsevents and fsnotify devices
must match the primary or supplementary group ID given to devb-*.
For example, the following commands start devb-ahci as uid 121 and gid 132,
giving it access to the fsnotify and fsevents entries:
fsevmgr -F 132 -N 132
devb-ahci cam user=121:132
The fsevmgr manager uses the following custom abilities, which by are given
to root users by default:
-
fsevmgr/qnxext (INOTIFY_ABILITY_QNX_EXT) — Check for processes that
want to listen to any of the QNX extended inotify events.
-
fsevmgr/recurse (INOTIFY_ABILITY_RECURSE) — Reserved for future use.