Как понять SIGSTOP доставлен? - PullRequest
0 голосов
/ 13 апреля 2020

Моя проблема связана с обработкой SIGSTOP. Я знаю, что SIGSTOP не может быть перехвачен, обработан и заблокирован, но в некотором месте кода, если сигнал SIGSTOP доставлен, выполнение должно продолжаться. Я понимаю, что должен сигнализировать о своем процессе с помощью SIGCONT, но как я могу понять, что SIGSTOP поставляется? Должен ли быть другой процесс, который постоянно отправляет SIGCONT? Это должен быть внешний процесс?

1 Ответ

0 голосов
/ 13 апреля 2020

Ваш процесс не может обнаружить SIGSTOP больше, чем он может обнаружить SIGKILL. Способ, которым процесс обнаруживает, что он получил сигнал, заключается в получении уведомления через обработчик сигнала (или эквивалентный, такой как signalfd на Linux). Поскольку SIGSTOP не может быть перехвачен, ваш процесс не может получить никакого уведомления об этом.

Вы можете использовать внешний процесс, чтобы отправить его SIGCONT, если хотите, но, возможно, самое время задать вопрос, почему ваш процесс получает SIGSTOP, когда это нежелательно. Если это чисто из соображений предосторожности, то, вероятно, не стоит беспокоиться, если ваше программное обеспечение не является критически важным для безопасности или безопасности, и в этом случае вы можете запускать его как отдельный пользователь, чтобы ограничить круг лиц, которые могут сигнализировать об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...