Назад | Перейти на главную страницу

Намеренно мешать процессу отвечать

Есть ли способ намеренно предотвратить ответ процесса - т.е. не закрывать и не убивать его, а останавливать его мертвым на своем пути, чтобы он немедленно прекратил что-либо обрабатывать?

Я часто обнаруживал, что хочу принудительно перевести процесс в неактивное состояние, чтобы протестировать какой-то обработчик, когда это действительно происходит по какой-либо причине.

В настоящее время я работаю над centos 5.5 и специально хочу предотвратить named от ответа - это иногда случается в «нормальных условиях» (т.е. причина неизвестна), и мне нужно реагировать на это ... но тестирование довольно сложно, когда мне нужно ждать (в течение нескольких недель), чтобы это произошло случайным образом.

Я полагаю, хорошим индикатором того, что процесс мертв, будет то, что strace -p 1234 молчит.

Общее решение является предпочтительным, но если у вас есть идеи, относящиеся только к этому конкретному случаю, все равно отправьте ответ.

Вы можете приостановить процесс, отправив ему сигнал SIGSTOP, и возобновить его, отправив SIGCONT.

kill -STOP <pid>

и

kill -CONT <pid>

соответственно.