Если я нажимаю Ctrl + C, это генерирует исключение (всегда в потоке 0?). Вы можете поймать это, если хотите, или, что более вероятно, выполнить некоторую очистку, а затем перебросить ее. Но обычный результат заключается в том, чтобы остановить программу так или иначе.
Теперь предположим, что я использую команду Unix kill
. Как я понимаю, kill
в основном отправляет (настраиваемый) сигнал Unix в указанный процесс.
Как реагирует на это RTS Haskell? Это где-то задокументировано? Я бы предположил, что отправка SIGTERM
будет иметь тот же эффект, что и нажатие Ctrl + C, но я не знаю, что для факта...
(И, конечно, вы можете использовать kill
для отправки сигналов, которые вообще не имеют никакого отношения к убийству. Опять же, я бы предположил, что RTS игнорирует, скажем, SIGHUP
или SIGPWR
, но Я точно не знаю.)