SHUTDOWNHOOK_ESTABLISH(9) BSD Kernel Developer's Manual SHUTDOWNHOOK_ESTABLISH(9)
NAME
shutdownhook_establish, shutdownhook_disestablish -- add or remove a shutdown hook
SYNOPSIS
void *
shutdownhook_establish(void (*fn)(void *), void *arg);
void
shutdownhook_disestablish(void *cookie);
DESCRIPTION
The shutdownhook_establish API is deprecated.
The shutdownhook_establish() function adds fn to the list of hooks invoked by doshutdownhooks(9) at shutdown. When invoked, the hook func-
tion fn will be passed arg as its only argument.
The shutdownhook_disestablish() function removes the hook described by the opaque pointer cookie from the list of hooks to be invoked at
shutdown. If cookie is invalid, the result of shutdownhook_disestablish() is undefined.
Shutdown hooks should be used to perform one-time activities that must happen immediately before the kernel exits. Because of the environ-
ment in which they are run, shutdown hooks cannot rely on many system services (including file systems, and timeouts and other interrupt-
driven services), or even basic system integrity (because the system could be rebooting after a crash).
RETURN VALUES
If successful, shutdownhook_establish() returns an opaque pointer describing the newly-established shutdown hook. Otherwise, it returns
NULL.
EXAMPLES
It may be appropriate to use a shutdown hook to disable a device that does direct memory access, so that the device will not try to access
memory while the system is rebooting.
It may be appropriate to use a shutdown hook to inform watchdog timer hardware that the operating system is no longer running.
SEE ALSO
doshutdownhooks(9)
BUGS
The names are clumsy, at best.
BSD
May 14, 2009 BSD