Различия

Показаны различия между двумя версиями страницы.


chto_oznachaet_dev_null_2_1_ili_perenapravlenie_stdin_stdout_i_stderr [2021/07/31 21:57] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Что означает "> /dev/null 2>&1" или перенаправление STDIN, STDOUT и STDERR? ======
  
 +
 +{{htmlmetatags>
 +metatag-description=(Стандартные потоки ввода-вывода в системах типа UNIX: сstdin, stdout, stderr, stdaux, stdprn.
 +}}
 +
 +{{ ::process_stdin_stdout_stderr_return-code.png?nolink&600 |}}
 +Существует три стандартных значения ввода и вывода для программ (их можно представить как «потоки данных», они пришли из языка программирования C).
 +
 +  - **STDIN** - ввод получают от клавиатуры (интерактивная, диалоговая программа), или из программы, обрабатывающей вывод другой программы.
 +  - **STDOUT** - вывод результат программы обычно печатается в стандартной вывод
 +  - **STDERR** - вывод сообщений об ошибках
 +
 +Часто к ним обращаются не по имени, а по номеру (по умолчанию, если не указать номер, подразумеваться STDOUT):
 +**0 — STDIN, 1 — STDOUT и 2 — STDERR**.
 +
 +Когда программа начинает выполняться, автоматически открываются пять потоков: стандартный ввод (**stdin**), стандартный вывод (**stdout**), стандартный вывод для сообщений об ошибках (**stderr**), стандартный последовательный порт (**stdaux**) и стандартное устройство печати (**stdprn**).
 +
 +<note tip>Оператор > («больше чем»), переадресовывает вывод программы. </note>
 +<note>/dev/null & выполнение в фоне
 +
 +/dev/null && после выполнения без ошибок выполнить следующую коменду
 +
 +[command] & — запускает команду в фоне, т.е. управление отдаётся командному интерпретатору (bash, например), а [command] будет выполняться «параллельно».
 +
 +[command] && — подразумевает, что следующая команда будет выполнена только в том случае, если [command] была выполнена успешна (вернула 0).
 +</note>
 +
 +  * Пример. Если нужно получить вывод скрипта и никаких ошибок: 2>/dev/null<file>
 +*/10 * * * * root /var/www/jobs/cronload.sh > /dev/null 2>/dev/null
 +</file>
 +  * Пример. [[cron]]. Если нужно получать только сообщения об ошибках: > /dev/null<file>
 +*/10 * * * * root /var/www/jobs/cronload.sh > /dev/null
 +</file>
 +  * Пример. [[cron]]. Если нужно весь вывод указанной команды удалить, то есть даже при ошибках скрипт будет молчать.<file>
 +*/10 * * * * root /var/www/jobs/cronload.sh > /dev/null 2>&1
 +</file>

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!