Можно ли постоянно запускать inotifywait на сервере Linux без cron или incron?

Я создаю GIT-репо на сервере для этого каталога. Я хочу, чтобы всякий раз, когда в каталог перемещался файл, git push запускает репо и фиксирует. Я попытался incrontab, чтобы выполнить скрипт. Но, похоже, мой сервер не любит incrontab, он каждый раз зависал.

Я могу запустить этот inotifywait на моем терминале. Но как только я закрыл терминал, он перестает смотреть. Итак, есть ли способ непрерывно запускать inotifywait на Linux Server?

Вот мой код для Inotifywait

while inotifywait -re modify,attrib,move,close_write,create,delete,delete_self /path/to/script.sh
    do
     cd /path/to/dir
     git pull
     git add .
     git commit -m 'updated'
     git push
     echo "done!"
    done

Я действительно хочу использовать только inotify, без вещей cron. Я давно работал над cron и incron, incrontab. Неудачно.

У кого-нибудь есть идеи? Спасибо!

1 ответ

Решение

Если управляющий терминал закрыт, дочерние процессы получают сигналы, которые - если они не перехвачены - замыкают их по замыслу.

Сигнал зависания

Если вы хотите, чтобы от этого был защищен дочерний процесс, вы можете запустить его с помощью команды nohup.

команда nohup

Чтобы запустить команду в фоновом режиме, вы применяете (с большинством, если не со всеми оболочками) & в конце.

Другие вопросы по тегам