1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/orionis-coyotes

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
signal.go 775
Копировать Редактировать Исходные данные Просмотреть построчно История
管宜尧 Отправлено 8 лет назад ca64c01
package signal
import (
"os"
"os/signal"
"syscall"
"github.com/mylxsw/coyotes/config"
"github.com/mylxsw/coyotes/log"
)
// InitSignalReceiver 初始化信号接受处理程序
func InitSignalReceiver() {
runtime := config.GetRuntime()
signalChan := make(chan os.Signal, 1)
signal.Notify(
signalChan,
syscall.SIGHUP,
syscall.SIGUSR2,
syscall.SIGINT,
syscall.SIGKILL,
)
go func() {
for {
sig := <-signalChan
switch sig {
case syscall.SIGUSR2, syscall.SIGHUP, syscall.SIGINT, syscall.SIGKILL:
log.Debug("Received exit signal, waiting for exit...")
for _, channel := range runtime.Channels {
channel.StopChan <- struct{}{}
}
runtime.StopScheduler <- struct{}{}
runtime.StopHTTPServer <- struct{}{}
}
}
}()
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/orionis-coyotes.git
git@gitlife.ru:oschina-mirror/orionis-coyotes.git
oschina-mirror
orionis-coyotes
orionis-coyotes
v1.0-beta