💬Как обрабатывать сигналы Unix в Go?



🔸Обработка сигналов UNIX в Go обычно выполняется с использованием пакета os/signal.



📌Простой пример:



1. Импортируем пакет os/signal и syscall:



import (

"os"

"os/signal"

"syscall"

)




2. Создаем канал, который будет использоваться для получения сигналов:



signals := make(chan os.Signal, 1)



3. Используем функцию signal.Notify, чтобы указать, какие сигналы мы хотим обрабатывать:



signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM)



4. Используем select в горутине или в основном потоке программы для ожидания сигналов и реагирования на них:



select {

case sig := <-signals:


// обработка сигнала

fmt.Printf("received signal %v\n", sig)

}




📌Программа ожидает сигналы SIGINT и SIGTERM, и когда она их получит, выведет полученный сигнал. Это базовый пример того, как можно обрабатывать сигналы в Go.



👉 Подробнее