Другая недавняя опция с помощью Linux является проектом IPVS, который теперь включен в ядро Linux v2.6.38-rc3 или позже.
Это использует уровень 4, переключающийся в ядро, и, как говорят, - FAST.
Больше информации здесь http://kb.linuxvirtualserver.org/wiki/IPVS
Создание /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.
Я когда-то узнал твердый способ, которым/dev/null не должен быть специальным dev файлом. Давным-давно/dev/null в системе Ultrix на работе был удален, таким образом, в следующий раз программа, перенаправленная к/dev/null, это закончило тем, что было нормальным файлом, полным вывода из той программы. (Я думаю, что это не был 'такой файл или каталог', который означал, когда мы пытались выяснить то, что продолжалось, мы сделаем cat /dev/null
и скажите no such file or directory
который перепутал ад из нас.)
Таким образом, мое предложение было бы, чтобы быть заменой это с именованным каналом и затем присоединить программу к каналу, который будет читать его и контролировать его.
/dev/null
всегда возвращая 0 байтов на чтении (cat /dev/null > foo
). Наличие /dev/null
будьте регулярным файлом с содержанием, повредил бы это ожидание. программы
– Arcege
17.02.2012, 18:44
Я думаю об идее, где/dev/null может быть символьной ссылкой на дескриптор файла, но с добавляют механизм кода, чтобы решить, что операция читается, или запишите и затем если это читается, это должно на самом деле читать из/dev/actualnull, созданного отдельно с mknod и если это - запись, затем обращают внимание на программу вызова и попытку регистрировать/значить анализ программ, которые используют/dev/null для записи. Это собирается стоить много с точки зрения производительности, я предполагаю все же. Я предполагаю, что это не практично начиная с большинства программных оболочек или перенаправления использования кода так или иначе. Может быть inotify, мог использоваться для контроля использования/dev/null? или перепишите код ядра, который обрабатывает 1:3 устройства, снова скомпилируйте и переустановите, experimentable.
/dev/null
от демона), и sshd
все еще жаловался и не запустится. ответ
– Chris Down
18.02.2012, 20:41
sshd
(по крайней мере, как упаковано для Debian Сжимают), жалуется с sshd: cannot create /dev/null
если это - совсем не наиболее распространенная реализация.
– Chris Down
19.02.2012, 08:46
tail
сбои, затем много программ может перестать работать, потому что буфер канала полон. – Arcege 17.02.2012, 18:44/dev/null
движению не должно нравиться это. – Gilles 'SO- stop being evil' 17.02.2012, 18:53No magic
руководящий принцип в философии UNIX. файлы – phihag 17.02.2012, 21:49/dev/null
является волшебным,mknod /dev/null c 1 3
волшебная формула должна вызвать его. (И Вам нужны супердержавы для этого …) – Stéphane Gimenez 17.02.2012, 23:55