"attempt to invoke directory '/srv/http' as script" error with "SetHandler application/x-httpd-php" enabled in apache config on archlinux

К каждому процессу в системе Unix подключено два потока вывода: стандартный вывод (stdout, файловый дескриптор 1) и стандартная ошибка ( stderr, файловый дескриптор 2). Они могут быть перенаправлены независимо друг от друга. Стандартный ввод использует дескриптор файла 0.

  • Чтобы перенаправить стандартный вывод в файл файл , используйте > file или более явное 1> файл . Замените файл на / dev / null , чтобы удалить данные.
  • Чтобы перенаправить стандартную ошибку в файл файл , используйте 2> файл .
  • Чтобы перенаправить стандартную ошибку туда, где идет стандартный вывод, используйте 2> & 1 .
  • Чтобы перенаправить стандартный вывод туда, где происходит стандартная ошибка, используйте 1> & 2 .

Не существует понятия «конечный результат» потока или процесса.Я полагаю, что все, что отправляется на стандартный вывод, может быть воспринято как «результат» процесса, если только он не выводит данные в какой-то файл, который открывается сам по себе, или имеет другие побочные эффекты (например, отсоединение файла от каталога в случае of rm , или обработка ряда сетевых подключений, в случае sshd ). Процесс также возвращает статус выхода (ноль для «успеха» и ненулевое значение для «неудачи»), который можно рассматривать как «результат» этого процесса, но это не обязательно связано с потоками вывода процесса.

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

В примечании к вопросу дается команда

find / -type f -name php.ini 2>/dev/null

. Это перенаправляет (отбрасывает) только стандартную ошибку . Стандартный выходной поток вообще не перенаправляется и поэтому будет полностью виден в консоли или терминале. Если бы это была промежуточная часть конвейера, стандартный выходной поток подавался бы на стандартный ввод следующей команды конвейера.

В заключение я бы сказал, что существует два (а не четыре) выходных потока. Они могут быть перенаправлены независимо друг от друга различными способами, включая удаление их содержимого.

1
13.04.2017, 15:13
0 ответов

Теги

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