1. Куча / Говнокод #28375

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    На работе такая таска:
    Есть сервис, который запускает наши сервисы и следит за ними, напр. перезапускает, если один из них упал.
    Таска такая, что нужно посылать всем сервисам сообщения из командной строки.
    Т.е. уже можно послать сигналы из командной строки (SIGTERM, SIGHUP, и.т.д)
    `svctl -s stop` - наример.
    Но теперь нужно посылать SIGUSR1, перед этим записав в файл сообщение, тоже переданное из командной строки. Все запущенные сервисы по этому сигналу должны прочитать файл с сообщением и обработать его.
    И вот тут я сомневаюсь, что так правильно.
    1. Может лучше открыть именованный канал, и туда всё посылать, без сигналов? Но тут треды и код усложнится, а проект простой, на 20 методов в двух классах.
    2. Если это всё же правильно, то вместо файла тоже может использовать именованный канал для обмена сообщениями?

    Запостил: YpaHeLI_, 19 Сентября 2022

    Комментарии (16) RSS

    • что таоке "именованный канал" в unix? Если речь о named pipe или message queues (буть это IPC или позикс) то они разве умеют мультикаст?

      Сигналы звучат как хорошее решение. К ним можно паровозиком привязать данные:
      https://man7.org/linux/man-pages/man2/sigqueue.2.html
      const union sigval value
      Ответить
    • Блядь, нахера тебе вообще все эти каналы? Осень такая замечательная, пиздуй лучше в отпуск, пока можно.
      Ответить
      • В думбасс на активный отдых
        Ответить
        • Если в Донбасс - то отдых будет как раз пассивный, верхом на боеголовке.
          Ребята з Укриини даже детский крем подготовили, чтоб лучше входило.
          Ответить
      • гост, тебя сломали?

        Я был у вас в городе как раз осенью кажется. Останавливался в хостеле Localhostel. Не задолго до теракта
        Ответить
        • Нет, заебало просто.
          Ответить
          • выгорел, значит

            уйди на три недели в запой, а потом РЕЗКО смени проект
            Ответить
            • Слушайте, когда в радиоприемнике сгорает лампа, ее же не кладут на полочку, "для реанимации"... А человек устроен всяко сложнее, чем любой из радиоприемников, даже собранных в начале нулевых в Латвии.

              Если сгорел, дорога одна - в колумбарий
              Ответить
      • Золотые слова ;-)
        Ответить
    • > следит за ними, напр. перезапускает, если один из них упал
      Какие всё-таки прыщепроблемы...
      Ответить
      • какие всё таки неумения использовать systemd в 2022м году

        Впрочем, ты прав: svc на пинде еще в nt4 это умели.

        А как это говно у яблок называлось? launchd?
        Ответить
    • Вай нот? Релоад конфига по сигналу -- вполне популярный приём, знакомый всем админам.

      З.Ы. Только нафига вам самодельный менеджер сервисов?
      Ответить

    Добавить комментарий