Skip to content

Signal Handlers #2339

Closed
Closed
@kt3k

Description

@kt3k

Something equivalent of the followings:

node.js

process.on('SIGTERM', () => {/* do something */}));

python

def handler(signum, frame):
  # do something

signal.signal(signal.SIGTERM, handler)

ruby

Signal.trap("TERM") {
  # do something
  exit
}

golang

sigc := make(chan os.Signal, 1)
signal.Notify(sigc, syscall.SIGTERM)
go func() {
    s := <-sigc
    // do somethig
}()

rust (using tokio signal)

let ctrl_c = tokio_signal::ctrl_c().flatten_stream();

let prog = ctrl_c.for_each(|()| {
    // do something
    Ok(())
});

tokio::run(prog.map_err(|err| panic!("{}", err)));

Metadata

Metadata

Assignees

No one assigned

    Labels

    featnew feature (which has been agreed to/accepted)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions