Skip to content

std/signal

POSIX signal handling.

milo
from "std/signal" import { onSignal, ignoreSignal, resetSignal, SIGINT, SIGTERM, SIGHUP, SIGQUIT, SIGABRT, SIGKILL, SIGALRM }

Constants

NameValueDescription
SIGHUP1Hangup
SIGINT2Interrupt (Ctrl+C)
SIGQUIT3Quit
SIGABRT6Abort
SIGKILL9Kill (cannot be caught)
SIGALRM14Alarm timer
SIGTERM15Termination

Functions

onSignal

milo
fn onSignal(sig: i32, handler: fn(i32): void)

Register a handler function for the given signal. The handler receives the signal number.

ignoreSignal

milo
fn ignoreSignal(sig: i32)

Set the signal disposition to ignore. The signal will be silently discarded.

resetSignal

milo
fn resetSignal(sig: i32)

Reset the signal to its default disposition.

Example

milo
from "std/signal" import { onSignal, SIGINT, SIGTERM }

fn main(): i32 {
    onSignal(SIGINT, (sig: i32): void => {
        print("caught interrupt, cleaning up...")
        exit(0)
    })

    onSignal(SIGTERM, (sig: i32): void => {
        print("terminated")
        exit(0)
    })

    // main loop...
    return 0
}