Здесь три уровня тщательности.
Как утверждает Миллилсон, если вы просто замените subprocess.call
на subprocess.Popen
, оставив все остальное одинаковым, то main.py не будет ждать ведомого. чтобы закончить до его продолжения. Этого может быть достаточно. Если вы заботитесь о зомби-процессах , висящих вокруг, вы должны сохранить объект, возвращенный из subprocess.Popen
, а в какой-то более поздний момент вызывать его метод wait
. (Зомби автоматически уйдут, когда main.py выйдет, поэтому это серьезная проблема, если main.py работает очень долго и / или может создавать много подпроцессов.) И, наконец, если вы не хотите зомби но вы также не хотите решать, где делать ожидание (это может быть целесообразно, если оба процесса запускаются в течение длительного и непредсказуемого времени после этого), используйте библиотеку python-daemon , чтобы подчинить подчиненную функцию disassociate сам от мастера - в этом случае вы можете продолжить использование subprocess.call
в главном устройстве.