Что означает "</dev /null "означает?

Я понимаю > /dev/null перенаправляет вещи на /dev/null, который действует как черная дыра. Однако я не понимаю, что означает < /dev/null. Я видел несколько сценариев, написанных так:

nohup myprogram > foo.out 2> foo.err < /dev/null &

Итак, что означает < /dev/null в коде выше?

Вот пример где предлагается

16 голосов | спросил Elgs Qian Chen 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 20 Sep 2015 19:42:06 +0300 2015, 19:42:06

2 ответа


19

Это гарантирует, что все потоки ввода-вывода учитываются /заняты.

Таким образом, фоновый процесс не имеет ничего «привязанного» к терминалу, поэтому вы можете заниматься своим бизнесом, не пытаясь прочитать программу из TTY, что приведет к зависанию терминала.

В этом случае, поскольку вы запускаете процесс поверх ssh из сценария оболочки, он убеждается, что скрипт может перемещаться по необремененному.

ответил user3276552 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 20 Sep 2015 19:44:49 +0300 2015, 19:44:49
12

program </dev/null означает, что program принимает входной аргумент (может быть входным параметром для параметра или может быть введенным файлом для работы) через дескриптор файла 0, т. е. STDIN, из файла /dev/null.

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

ответил heemayl 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 20 Sep 2015 20:26:55 +0300 2015, 20:26:55

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132