Из-за пределов программы вы можете отправить любому процессу сигнал с помощью команды kill
.
По умолчанию kill отправит сигнал SIGTERM
, который завершитпроцесс, и освободить свои выделенные ресурсы.Вы можете использовать команду ps
, чтобы найти идентификаторы процессов вашей программы.Использование CTRL - C приведет только к завершению родительского процесса.Это не убьет дочерние процессы.Если вы просто разветвили и не выполнили новую программу, тогда все ваши дочерние процессы будут иметь то же имя, что и родительский, что означает, что вы можете использовать команду killall
, чтобы завершить их все водин ход.Если вы вошли в систему удаленно, то выход из системы вызовет отправку сигнала SIGHUP
всем процессам, которые вы породили во время сеанса, что приведет к их завершению по умолчанию.
Внутри программы естьявляется функцией kill()
, которая работает аналогично команде.Идентификаторы процессов вам по-прежнему нужны, поэтому важно, чтобы ваш родительский код запоминал идентификатор дочернего процесса, возвращаемый fork.