Python Glossary English

все Python 3osфункция

os._exit

os — аварийное завершение

Немедленно завершает процесс с кодом n, минуя финализаторы Python (для дочернего после fork).

Синтаксис

os._exit(n)

Не выполняет finally, atexit и не сбрасывает буферы: текст, напечатанный через print в канал или файл, может бесследно пропасть. Правильное место — дочерний процесс после os.fork, чтобы потомок не выполнил код очистки родителя. В обычной программе выходят через sys.exit, который поднимает SystemExit и проходит всю очистку.

Примеры

import os
print(os.getpid())   # → ? идентификатор текущего процесса, например 12345
pid = os.fork()   # → ? только Unix: 0 в дочернем процессе, pid ребёнка в родительском
if pid == 0: os._exit(3)   # → ? дочерний процесс завершается сразу с кодом 3, минуя atexit, finally и сброс буферов
print(os.waitstatus_to_exitcode(os.waitpid(pid, 0)[1]))   # → ? только Unix: 3 — родитель забирает код выхода ребёнка

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности