Пытается использовать python для управления многочисленными скомпилированными исполняемыми файлами, но работает с проблемами в хронологии! Мне нужно иметь возможность запускать два исполняемых файла одновременно, а также иметь возможность «ждать», пока исполняемый файл не завершит работу до запуска другого. Кроме того, некоторые из них требуют суперпользователя. Вот то, что я до сих пор:Python работает синхронно? Запуск одного исполняемого файла за один раз
import os
sudoPassword = "PASS"
executable1 = "EXEC1"
executable2 = "EXEC2"
executable3 = "EXEC3"
filename = "~/Desktop/folder/"
commandA = filename+executable1
commandB = filename+executable2
commandC = filename+executable3
os.system('echo %s | sudo %s; %s' % (sudoPassword, commandA, commandB))
os.system('echo %s | sudo %s' % (sudoPassword, commandC))
print ('DONESIES')
Предполагая, что os.system() ожидает исполняемый файл, чтобы закончить до перехода к следующей строке, это должно работать EXEC1 и EXEC2 одновременно, и после того, как они заканчивают работать EXEC3 ... Но это не так. На самом деле, он даже печатает «DONESIES» в оболочке, прежде чем команда B даже закончит ... Пожалуйста, помогите!
Вы перекрывая 'os.system'. Вызов функции вместо присвоения ему: 'os.system ('эхо% s | Суд% s' % (sudoPassword, commandC))' – utdemir
использования 'из подпроцесса импорта вызова' не уверен, что я могу использовать в качестве суперпользователя , Я пытался использовать IDLE как sudo, но он не обрабатывает команды в 'call()' как sudo. Не могли бы вы объяснить немного дальше? – ovadaflame
Что вы хотите делать с stdout/stderr вызываемых программ? Отображать на экране ... записывать в файл журнала? – tdelaney