Я хочу, чтобы запустить следующую os.system команду в качестве подпроцесса для того, чтобы узнать идентификатор процесса, так как я хочу, чтобы иметь возможность выполнитьзапустить команду os.system, как подпроцесс питона
proc.terminate()
Беллоу os.system()
Команда, которая работает. Обратите внимание, что команда bellow уже открывает подоболочку, так как это делает то, что делает setview
, а затем выполняет скрипт python внутри этой подоболочки и затем выходит из этой подоболочки.
os.system("/usr/atria/bin/cleartool setview -exec '/usr/bin/python /home/testUser/Development/Scripts/setDoneFlag_Count_Lines.py' testUser__project_5_0_myProject_001")
Я попытался
import subprocess
cmd = "/usr/atria/bin/cleartool setview -exec '/usr/bin/python /home/testUser/Development/Scripts/setDoneFlag_Count_Lines.py' testUser__project_5_0_myProject_001"
p=subprocess.Popen(cmd.split(), shell=True)
Взято из этой StackOverflow резьбы: How to determine pid of process started via os.system Но это только выполняет первую /usr/atria/bin/cleartool
, а не другие команды. Кто-нибудь знает, как написать подоболочку, эквивалентную моему вызову os.system?
Заранее спасибо.
см http://stackoverflow.com/questions/7989922/opening-a-process-with-popen-and-getting-the-pid – hardythe1