Это зависит от того, что это за процессы и что они делают.
На самом базовом уровне ядро спроектировано так, чтобы справляться с неожиданно умирающими процессами пользовательского режима (с одним или двумя исключениями: например, в Linux есть код специального случая, чтобы вызвать сбой системы, если init
когда-либо завершится; один такой особенный процесс в Windows, но вы, вероятно, не пишете эти программы). Он автоматически закрывает все файлы, открытые процессом, освобождает память, снимает блокировки и т.д. Таким образом, вам не нужно беспокоиться о нарушении фундаментальной стабильности ОС.
Теперь становится интереснее, если рассматриваемый процесс записывает данные в файловую систему или связывается с другими процессами (возможно, даже не на том же компьютере). Узлы связи получат внезапный EOF, TCP RST или что-то подобное. Файлы сохранятся, возможно, с внутренне несовместимым содержимым, и что-то может сработать. В конечном счете, вы несете ответственность за то, чтобы все остальное в системе было подготовлено к тому, чтобы ваш процесс ушел.
Читайте о дизайне, предназначенном только для сбоев, о том, как создавать надежные системы при наличии ограничителей ресурсов и т. П.