openlang

Резервирует ли Go сигналы SIGUSR1 и SIGUSR2?

Уважаемые разработчики,

мы хотим запускать приложение на go под dmtcp (на GitHub размещён dmtcp/dmtcp, проект распределённых многопоточных контрольных точек DMTCP (https://github.com/dmtcp/dmtcp)). Этот инструмент использует SIGUSR2 (либо SIGUSR1) и возражает, если управляемое им приложение тоже использует эти сигналы. Наши тесты, похоже, показывают, что все приложения на go, даже простейшие, используют оба сигнала. Я просмотрел документацию, но ничего об этом не нашёл, извините, если пропустил нужное место. Знакомо ли вам такое поведение и можно ли запретить go использовать оба сигнала?

Большое спасибо

Переведено с английскогоПоказать оригинал

Разговор продолжается 2

Следуя доводам
  1. Ссылка на ответ

    Здравствуйте!

    Приложения Go изначально используют SIGUSR1 (профилирование) и SIGUSR2 (управление средой выполнения), что конфликтует с теми же сигналами DMTCP (который может вместо этого выбрать SIGUSR1). Сейчас среда выполнения Go не предоставляет простого способа отказаться от их использования. Возможные обходные пути включают исключение импортов runtime/pprof, осторожную настройку DMTCP только на SIGUSR1, изоляцию процессов Go или обращение к разработчикам DMTCP за конкретным советом. Самостоятельно перехватывать эти сигналы в Go при работе с DMTCP настоятельно не рекомендуется.

    Переведено с английскогоПоказать оригинал

Другие стороны того же вопроса

  1. Открытие файлов на Raspberry Pi 4

    На Raspberry Pi 4 я вызываю fopen в цикле for, чтобы читать файлы из определённого каталога, всего их больше 1200. После неко…

    Ответы 2Последняя активность c
  2. Как остановить сервер inets?

    Здравствуйте, У меня довольно простой вопрос об inets (который, кстати, очень удобен, поскольку не требует дополнительных зав…

    Ответы 2Последняя активность erlang