Слияние кода завершено, страница обновится автоматически
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 )