2013-07-15 6 views
1

У меня есть скрипт python для перестройки конфигурации haproxy, а затем перезапустите haproxy .. Единственная проблема заключается в том, что при запуске скрипта из cron иногда haproxy перезапускается до того, как новая конфигурация будет на месте.Как я могу убедиться, что команды ОС выполняются синхронно в Python?

Когда я запускаю сценарий из командной строки, этого не происходит.

Я попытался добавить time.sleep() в сценарий, чтобы он подождал, но иногда это все еще происходит. Вот соответствующий код:

command = "/home/adam/bin/genproxy.sh" 
os.system(command) 
os.system("cp /home/adam/bin/haproxy.cfg /etc/haproxy/") 
time.sleep(2) 
os.system("sudo /etc/init.d/haproxy restart") 

Как я могу убедиться, что перезагрузка ждет завершения копирования?

+0

http://stackoverflow.com/a/17651370/661195 Помогает ли это? –

ответ

2

Довольно уверен, что это должно быть сделано.

commands = [ ... ] 
for command in commands: 
    if os.system(command) == 0: 
     # Check for failure and wait 
     continue 
    else: 
     print "ERROR" 
     break