одновременно запускать несколько сценариев Python без создания нескольких сценариев - PullRequest
0 голосов
/ 28 августа 2018

Я надеюсь, что смогу объяснить это хорошо (английский не мой родной язык), но в этом вопросе они задают одновременное выполнение нескольких сценариев Python. это именно так, как я делаю это прямо сейчас, в основном просто за исключением нескольких моих скриптов с & в bash

я пытаюсь избежать создания нескольких сценариев и хотел бы сценарий, который может запускать их все одновременно

из сценариев выглядит так (похоже на все мои другие сценарии)

while True:
    text = "some shell script"
    os.system(text)

Мне было трудно использовать цикл while или любой другой цикл, потому что он выполняет их один за другим и работает очень медленно. Я очень незнаком с Python и не очень хорош в программировании .. поэтому любая помощь будет отличной

1 Ответ

0 голосов
/ 28 августа 2018

Вы можете использовать os.fork () , чтобы создать новый процесс для каждого сценария. т.е.

text = "some shell script"
pid = os.fork()
if pid == 0
    os.system(text)
    sys.exit()

Это создаст новый процесс и выполнит в нем скрипт, а затем выйдет после завершения. Хотя выполнение этого в цикле while будет просто создавать новые процессы до тех пор, пока ОС не остановит его.

Если у вас есть список программ, которые вы хотите выполнить, было бы лучше перебрать их с помощью цикла for. например, * +1008 *

programs = ['test1.py', 'test2.py', 'test3.py']
for program in programs:
    pid = os.fork()
    if pid == 0
        os.system(program)
        sys.exit()

Я бы также посоветовал использовать subprocess.call () поверх os.system (), как было написано, чтобы заменить его. Это позволяет вам легко обрабатывать ввод и вывод выполняемой программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...