Яндекс.Метрика
    Поиск по тегу

    unix-way


    Найдено: 1 запись

    Системное администрирование

    reboot с веб-интерфейсом или trigger: простая и дешевая синхронизация процессов через блокируемый read()

    Часто админские и веб-программерские задачи требуют синхронизации между разными компонентами системы, например, вебморда принимает команду на совершение какого-то действия, это действие желательно выполнить как можно раньше, но сам веб-интерфейс не может это сделать (скажем — не может изменить правила файрвола или таблицу роутинга просто потому что требуются полномочия root'а). Обычно я решал это некрасивым и неэффективным способом — веб-интерфейс писал команду в какой-то специальный файл, а другой шелл-скрипт (работающий от рута) в цикле проверял этот файл раз в несколько секунд, и если есть команды — то обрабатывал их.

    В этом посте я опишу простой способ, который:
    • не требует программирования — только unix-way сборка системы из маленьких кирпичиков
    • не отжирает много ресурсов (не нужно зря поллить файл, а сама программа весит значительно меньше шелла)
    • срабатывает моментально