Options to listen different signals
This commit is contained in:
parent
da95ae7f82
commit
1772990500
2 changed files with 5 additions and 4 deletions
2
go.mod
2
go.mod
|
@ -1,3 +1 @@
|
||||||
module github.com/neonxp/rutina
|
module github.com/neonxp/rutina
|
||||||
|
|
||||||
go 1.12
|
|
||||||
|
|
|
@ -122,10 +122,13 @@ func (r *Rutina) Go(doer func(ctx context.Context) error, opts ...Options) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// OS signals handler
|
// OS signals handler
|
||||||
func (r *Rutina) ListenOsSignals() {
|
func (r *Rutina) ListenOsSignals(signals ...os.Signal) {
|
||||||
|
if len(signals) == 0 {
|
||||||
|
signals = []os.Signal{os.Kill, os.Interrupt}
|
||||||
|
}
|
||||||
r.Go(func(ctx context.Context) error {
|
r.Go(func(ctx context.Context) error {
|
||||||
sig := make(chan os.Signal, 1)
|
sig := make(chan os.Signal, 1)
|
||||||
signal.Notify(sig, os.Interrupt, os.Kill)
|
signal.Notify(sig, signals...)
|
||||||
select {
|
select {
|
||||||
case s := <-sig:
|
case s := <-sig:
|
||||||
if r.logger != nil {
|
if r.logger != nil {
|
||||||
|
|
Loading…
Reference in a new issue