Достигнуть поведения os.system(cmd &) с помощью модуля подпроцесса, используя python 2.7

Возможно, дубликат Как запустить фоновый процесс в Python?

Но из многих решений только os.system(commandToRunInBackground &) Вроде бы все просто и делают свое дело. Хотя, согласно Replacing os.system (), использование модуля подпроцесса более рекомендуется. Итак, как запустить фоновый процесс в терминах оболочки (обратите внимание, & в конце), используя модуль подпроцесса.

1 ответ

В современных операционных системах процессы естественным образом протекают параллельно, и один случай ожидания завершения другого является особым случаем. Когда & Синтаксис был разработан в конце 60-х годов, это было по-другому. Затем вы должны были отметить параллельное выполнение.

В оболочке это сохраняется до сегодняшнего дня, также потому, что во многих случаях удобно, чтобы оболочка ожидала завершения команды, прежде чем разрешить следующий ввод от пользователя, так что все еще остается случай без & жду прекращения.

На уровне программирования случай с & (параллельное выполнение) является нормальным случаем, и ничего не нужно делать для его достижения.

Дело без & (ожидание завершения) может быть достигнуто с помощью wait() системный вызов явно (это то, что оболочка делает в большинстве случаев).

Для вас просто используйте Popen и не звони wait();-)

Другие вопросы по тегам