Почему программы Unix не могут иметь сигналы с осмысленными именами, определяемыми программой (а не USR1 и т. Д.)?

Многие программы Unix принимают сигналы типа USR1 и USR2 . Например, чтобы обновить исполняемый файл для Nginx на лету, вы отправляете kill -USR2 .

Я понимаю, что USR1 является сигналом, определяемым пользователем, что означает, что тот, кто создал программа может использовать его для обозначения «выключить», «выгрузить журналы» или «напечатать foo тысячу раз» или что-то еще. Но я не понимаю, почему они должны использовать это произвольное имя. Почему бы не kill -UPGRADE или kill -GRACEFUL_SHUTDOWN ? Разрешает ли Unix только определенные сигналы?

Пока мы работаем, Nginx также использует следующие сигналы (см. Документацию ):

  • TERM, INT : Quick shutdown
  • QUIT : плавное завершение работы
  • HUP : чтобы обновить исполняемый файл для Nginx на лету, вы отправляете kill -USR2 .

    Я понимаю, что USR1 является сигналом, определяемым пользователем, то есть тот, кто создал программу, может используйте его в значении «выключить», «сбросить журналы» или «напечатать foo тысячу раз» или что-то еще. Но я не понимаю, почему они должны использовать это произвольное имя. Почему бы не kill -UPGRADE или kill -GRACEFUL_SHUTDOWN ? Разрешает ли Unix только определенные сигналы?

    Пока мы работаем, Nginx также использует следующие сигналы (см. Документацию ):

    • TERM, INT : Quick shutdown
    • QUIT : плавное завершение работы
    • HUP : чтобы обновить исполняемый файл для Nginx на лету, вы отправляете kill -USR2 .

      Я понимаю, что USR1 является сигналом, определяемым пользователем, то есть тот, кто создал программу, может используйте его в значении «выключить», «сбросить журналы» или «напечатать foo тысячу раз» или что-то еще. Но я не понимаю, почему они должны использовать это произвольное имя. Почему бы не kill -UPGRADE или kill -GRACEFUL_SHUTDOWN ? Разрешает ли Unix только определенные сигналы?

      Пока мы работаем, Nginx также использует следующие сигналы (см. Документацию ):

      • TERM, INT : Quick shutdown
      • QUIT : плавное завершение работы
      • HUP : Почему бы не kill -UPGRADE или kill -GRACEFUL_SHUTDOWN ? Разрешает ли Unix только определенные сигналы?

        Пока мы работаем, Nginx также использует следующие сигналы (см. Документацию ):

        • TERM, INT : Quick shutdown
        • QUIT : плавное завершение работы
        • HUP : Почему бы не kill -UPGRADE или kill -GRACEFUL_SHUTDOWN ? Разрешает ли Unix только определенные сигналы?

          Пока мы работаем, Nginx также использует следующие сигналы (см. Документацию ):

          • TERM, INT : Quick shutdown
          • QUIT : плавное завершение работы
          • HUP :
            • Перезагрузка конфигурации
            • Запустить новые рабочие процессы с новой конфигурацией
            • Осторожно завершить работу старых рабочих процессов
          • USR1 : повторно открыть файлы журнала
          • USR2 : Обновить исполняемый файл на fly
          • WINCH : плавно завершить рабочие процессы

          HUP? ЛЕБЕДКА? В чем причина этих имен? Где я могу узнать об этом подробнее?

70
задан Raedwald 23 September 2019 в 14:05
поделиться