Монитор, что отправляется в/dev/null?

Другая недавняя опция с помощью Linux является проектом IPVS, который теперь включен в ядро Linux v2.6.38-rc3 или позже.

Это использует уровень 4, переключающийся в ядро, и, как говорят, - FAST.

Больше информации здесь http://kb.linuxvirtualserver.org/wiki/IPVS

19
29.12.2012, 00:36
3 ответа

Создание /dev/null именованный канал является, вероятно, самым легким путем. Предупредите что некоторые программы (sshd, например), будет действовать неправильно или не выполнится, когда они узнают, что это не специальный файл (или они могут читать из /dev/null, ожидание, что это возвращается EOF).

# Remove special file, create FIFO and read from it
rm /dev/null && mkfifo -m622 /dev/null && tail -f /dev/null
# Remove FIFO, recreate special file
rm /dev/null && mknod -m666 /dev/null c 1 3

Это должно работать под всеми дистрибутивами Linux и всем главным BSDs.

12
27.01.2020, 19:45
  • 1
    Одна вещь отметить является этим если tail сбои, затем много программ может перестать работать, потому что буфер канала полон. –  Arcege 17.02.2012, 18:44
  • 2
    , которые читают из /dev/null движению не должно нравиться это. –  Gilles 'SO- stop being evil' 17.02.2012, 18:53
  • 3
    @Gilles - Действительно, следовательно мое примечание. –  Chris Down 17.02.2012, 19:14
  • 4
    @Ali Да. No magic руководящий принцип в философии UNIX. файлы –  phihag 17.02.2012, 21:49
  • 5
    Гм /dev/null является волшебным, mknod /dev/null c 1 3 волшебная формула должна вызвать его. (И Вам нужны супердержавы для этого …) –  Stéphane Gimenez 17.02.2012, 23:55

Я когда-то узнал твердый способ, которым/dev/null не должен быть специальным dev файлом. Давным-давно/dev/null в системе Ultrix на работе был удален, таким образом, в следующий раз программа, перенаправленная к/dev/null, это закончило тем, что было нормальным файлом, полным вывода из той программы. (Я думаю, что это не был 'такой файл или каталог', который означал, когда мы пытались выяснить то, что продолжалось, мы сделаем cat /dev/null и скажите no such file or directory который перепутал ад из нас.)

Таким образом, мое предложение было бы, чтобы быть заменой это с именованным каналом и затем присоединить программу к каналу, который будет читать его и контролировать его.

6
27.01.2020, 19:45
  • 1
    Много программ также полагается в /dev/null всегда возвращая 0 байтов на чтении (cat /dev/null > foo). Наличие /dev/null будьте регулярным файлом с содержанием, повредил бы это ожидание. программы –  Arcege 17.02.2012, 18:44
  • 2
    Да, это - то, как мы обнаружили его. Программы не ожидали входа и получали рты его, плюс/dev/становился заполненным. –  Paul Tomblin 17.02.2012, 18:53

Я думаю об идее, где/dev/null может быть символьной ссылкой на дескриптор файла, но с добавляют механизм кода, чтобы решить, что операция читается, или запишите и затем если это читается, это должно на самом деле читать из/dev/actualnull, созданного отдельно с mknod и если это - запись, затем обращают внимание на программу вызова и попытку регистрировать/значить анализ программ, которые используют/dev/null для записи. Это собирается стоить много с точки зрения производительности, я предполагаю все же. Я предполагаю, что это не практично начиная с большинства программных оболочек или перенаправления использования кода так или иначе. Может быть inotify, мог использоваться для контроля использования/dev/null? или перепишите код ядра, который обрабатывает 1:3 устройства, снова скомпилируйте и переустановите, experimentable.

1
27.01.2020, 19:45
  • 1
    Существуют все еще некоторые проблемы, я пытался делать что-то вроде этого (не в ядре, но прозрачно-выход, позволяя читать из другого файла и управления /dev/null от демона), и sshd все еще жаловался и не запустится. ответ –  Chris Down 18.02.2012, 20:41
  • 2
    хм.. интересный на/dev/null, управляющем от демона. Я думаю, что большинство программ просто хотело бы использовать/dev/null как просто другой файл, оставляя важность и семантику/dev/null к системе. –  Nikhil Mulley 19.02.2012, 04:24
  • 3
    Ну, sshd (по крайней мере, как упаковано для Debian Сжимают), жалуется с sshd: cannot create /dev/null если это - совсем не наиболее распространенная реализация. –  Chris Down 19.02.2012, 08:46

Теги

Похожие вопросы