В Cygwin вызов Python3 os.execlp()
создает новый процесс для запуска внешних кодов Python, дочерний pid отличается от возвращаемого предыдущим os.fork()
.
Я не знаю, почему у Cygwin такой странный результат.
Запуск среды:
- Cygwin под win10
- Питон 3.6.4
Код :
parent.py
pid = os.fork()
if pid == 0:
os.execlp('python', 'python', 'child.py')
else:
print('child is , ', pid)
child.py
print(os.getpid())
При запуске родительского кода в Cygwin числа pid, возвращаемые двумя функциями print
, различаются.
# running result $python fork-exec.py
Child is 6104
Hello from child, 9428
Эта программа отлично работает под платформой Linux.