Прежде всего, если для вас важно время безотказной работы, я бы посоветовал клиенту сделать это. Это может быть так же просто, как дать ему команду с именем deploy-code. Используя ваш метод, если в их коде есть ошибка, ваш метод требует 10-минутного оборота (читай: время простоя) для его исправления, при условии, что он его исправит.
Тем не менее, если вы действительно хотите это сделать, вы должны создать демон, который будет искать файлы, измененные в течение последних 5 минут. Если он его обнаружит, он выполнит команду перезагрузки.
Код может выглядеть примерно так:
import os, time
CODE_DIR = '/tmp/foo'
while True:
if restarted = True:
restarted = False
time.sleep(5*60)
for root, dirs, files in os.walk(CODE_DIR):
if restarted=True:
break
for filename in files:
if restared=True:
break
updated_on = os.path.getmtime(os.path.join(root, filename))
current_time = time.time()
if current_time - updated_on <= 6 * 60: # 6 min
# 6 min could offer false negatives, but that's better
# than false positives
restarted = True
print "We should execute the restart command here."