Вопросы с тегом «signals»

Сигнал - это уведомление процессу о том, что произошло событие. Сигналы иногда называют программными прерываниями. Сигналы аналогичны аппаратным прерываниям в том смысле, что они прерывают нормальный поток выполнения программы; в большинстве случаев невозможно точно предсказать, когда придет сигнал. Они определены в стандартах C и расширены в POSIX, но многие другие языки / системы программирования также предоставляют к ним доступ.

14
Что убило мой процесс и почему?
Мое приложение работает в Linux как фоновый процесс. В настоящее время он запускается из командной строки в окне терминала. Недавно пользователь некоторое время выполнял приложение, и оно загадочным образом умерло. Текст: убитый был на терминале. Это случилось два раза. Я спросил, использует ли кто-то в другом Терминале команду kill для …
614 linux  process  kill  signals 

12
Как мне захватить SIGINT в Python?
Я работаю над сценарием Python, который запускает несколько процессов и соединений с базой данных. Время от времени я хочу убить скрипт с сигналом Ctrl+ C, и я хотел бы сделать некоторую очистку. В Perl я бы сделал это: $SIG{'INT'} = 'exit_gracefully'; sub exit_gracefully { print "Caught ^C \n"; exit (0); …
536 python  controls  signals 


10
Как предотвратить SIGPIPE (или обращаться с ними правильно)
У меня есть небольшая серверная программа, которая принимает соединения через TCP или локальный сокет UNIX, читает простую команду и, в зависимости от команды, отправляет ответ. Проблема в том, что клиент может быть не заинтересован в ответе иногда и выходит рано, поэтому запись в этот сокет вызовет SIGPIPE и приведет к …
261 c  io  signals  broken-pipe  sigpipe 

9
Можно ли перехватить сигнал Ctrl + C и запустить функцию очистки «отложенным» способом?
Я хочу захватить сигнал Ctrl+C( SIGINT), отправленный с консоли, и распечатать некоторые частичные итоги прогона. Возможно ли это на Голанге? Примечание: Когда я впервые опубликовал вопрос, я был озадачен тем, Ctrl+Cчто SIGTERMвместо того, чтобы быть SIGINT.
207 signals  go  sigterm 


9
В чем разница между sigaction и signal?
Я собирался добавить дополнительный обработчик сигналов к приложению, которое у нас есть, и заметил, что автор использовал их sigaction()для настройки других обработчиков сигналов. Я собирался использовать signal(). Чтобы следовать соглашению, я должен использовать, sigaction()но если я писал с нуля, что мне выбрать?
144 c  signals  posix 



2
Обработка сигналов с несколькими потоками в Linux
Что происходит в Linux, когда программа (которая, возможно, имеет несколько потоков) получает сигнал, например SIGTERM или SIGHUP? Какой поток перехватывает сигнал? Могут ли несколько потоков получать один и тот же сигнал? Есть ли специальный поток, полностью посвященный обработке сигналов? Если нет, что происходит внутри потока, который должен обрабатывать сигнал? Как …
119 c  linux  multithreading  signals  ipc 


4
Как я могу поймать SIGSEGV (ошибку сегментации) и получить трассировку стека под JNI на Android?
Я перемещаю проект в новый Android Native Development Kit (например, JNI), и я хотел бы поймать SIGSEGV, если это произойдет (возможно, также SIGILL, SIGABRT, SIGFPE), чтобы представить красивый диалог отчета о сбоях вместо (или раньше) то, что происходит в настоящее время: немедленная бесцеремонная смерть процесса и, возможно, некоторая попытка ОС …

7
В каком порядке я должен отправлять сигналы для корректного завершения процессов?
В комментарии к этому ответу на другой вопрос комментатор говорит: не используйте kill -9 без крайней необходимости! SIGKILL не может быть перехвачен, поэтому убитая программа не может запускать какие-либо процедуры завершения работы, например, для удаления временных файлов. Сначала попробуйте HUP (1), затем INT (2), затем QUIT (3) Я в принципе …

7
Как избежать использования printf в обработчике сигналов?
Поскольку printfон не реентерабелен, его небезопасно использовать в обработчике сигналов. Но я видел множество примеров кода, в которых используется printfэтот способ. Итак, мой вопрос: когда нам нужно избегать использования printfв обработчике сигналов и есть ли рекомендуемая замена?
86 c  linux  signals 

3
Вызов pthread_cond_signal без блокировки мьютекса
Я где-то читал, что мы должны заблокировать мьютекс перед вызовом pthread_cond_signal и разблокировать мьютекс после его вызова: Подпрограмма pthread_cond_signal () используется для сигнализации (или пробуждения) другого потока, который ожидает переменной условия. Он должен вызываться после того, как мьютекс заблокирован, и должен разблокировать мьютекс, чтобы процедура pthread_cond_wait () завершилась. Мой вопрос: …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.