У меня есть следующие упрощенные сценарии:
Питон test.py
:
import subprocess, os
def run_background_process(script_name):
with open(os.devnull, 'w') as FNULL:
background_process = subprocess.Popen(['nohup', '{}'.format(script_name)], stdout=FNULL
, stderr=FNULL
, stdin=FNULL)
return background_process
while True:
run_background_process('test.sh')
time.sleep(500)
Сценарий оболочки Bash test.sh
:
#!/bin/bash
n=1
echo ${n}
sleep 30
И ps -ef
результат:
15536 16555 0 14:18 test.py
15541 15536 0 14:18 test.sh
Итак, мой вопрос: почему test.sh
не отделен от test.py
и все еще является дочерним элементом test.py
?