💬Как обрабатывать сигналы Unix в Go?
🔸Обработка сигналов UNIX в Go обычно выполняется с использованием пакета
📌Простой пример:
1. Импортируем пакет
2. Создаем канал, который будет использоваться для получения сигналов:
3. Используем функцию
4. Используем
// обработка сигнала
📌Программа ожидает сигналы
👉 Подробнее
🔸Обработка сигналов 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. 👉 Подробнее