# os/off-signal
Remove every handler registered for a signal and return how many were
removed. When the last handler for a signal goes, the signal is unblocked
and its default disposition is restored; when the last handler overall goes,
the signalfd is torn down so `[vwait]` can exit.
## Syntax
[os/off-signal $signal]
## Parameters
- `$signal` — signal name, same spellings as `os/on-signal`
(`:sigterm`, `"TERM"`, `:term`, …)
## Examples
[os/off-signal :sigalrm] # → 0 when nothing was registered [os/on-signal :sigusr1 {|| nil}] [os/off-signal :sigusr1] # → 1 [os/off-signal :sigusr1] # → 0
## Returns
A number — the count of handlers removed (0 when none were registered).
`%Err{:message}` for an unknown signal or when another runtime owns signal
delivery. A signal pending when the default disposition is restored is
delivered by default (a pending SIGTERM terminates).
## See Also
`os/on-signal`, `os/signals`, `os/kill`