В Cygwin вызов Python3 os.execlp()
создает новый процесс для запуска внешних кодов Python, pid ребенка отличается от того, который возвращал предыдущий os.fork()
.
Я не знаю, почему у Cygwin такой странный результат,
Рабочая среда:
- Cygwin под win10
- Python 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.