Ответ narcisgarcia @ http://ubuntuforums.org/showthread.php?t=1482005 решил мою проблему.
Резюме: «Владелец каталога назначения должен быть« root », а группа / другие пользователи не могут иметь прав на запись».
Этого можно добиться несколькими способами, но вот пример на Python:
#!/usr/bin/env python
import os
import glob
import time
import subprocess
if __name__ == '__main__':
mtimes = dict()
while True:
for f in glob.glob('*.txt'):
if f not in mtimes:
mtimes[f] = os.path.getmtime(f)
if mtimes[f] != os.path.getmtime(f):
print("File {} was modified. Executing restart.sh.".format(f))
mtimes[f] = os.path.getmtime(f)
output = subprocess.check_output('./restart.sh')
print(output)
time.sleep(1)
Вероятно, вам нужно настроить его под свою среду:
glob.glob('*.txt')
— шаблон поиска файлов, которые вы хотите отслеживать. subprocess.check_output('./restart.sh')
— это место, где вы вызываете скрипт. Он может находиться где-то еще. time.sleep(1)
— задержка (в секундах )между проверками. Я бы выбрал inotifywait. Они смотрят на системные вызовы для создания, изменения, удаления, перемещения, и вы можете написать в оболочке, что делать при обнаружении
.