Проблема с корректным запуском служебного файла systemd

Один перенаправляет stderr для вывода, а другой — для ввода.

Если вы хотите, чтобы stderr был открыт для чтения и записи, вы можете использовать:

2<>/dev/null

Если вы войдете в систему, все три файловых дескриптора будут открыты для чтения и записи.

Для этого сначала откройте tty, а затем дважды вызовите dup().

Команды

{ seq 20 1<&2; } 2>/dev/null

и

{ seq 20 1>&2; } 2>/dev/null

эквивалентны, поскольку окончательное перенаправление создает файловый дескриптор, открытый для записи.

Если вы позвоните:

{ truss -o o seq 20 1<&2; } 2>/dev/null

вы увидите, что вызов записи из seqвыполнен успешно, и, кстати, :вывод из seqпереходит в /dev/null

0
19.08.2020, 08:52
0 ответов

Теги

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