Как сохранить форматирование, когда вывод sdiff отправляется в файл?

Ядро сообщает об этом.

EUID, EGID и PID исходного клиентского процесса, который подключился к потоковому сокету AF_LOCALв /run/systemd/journal/stdout, доступны из ядра через параметр сокета SO_PEERCRED, , который он использует . UCSPI -Инструменты UNIX получают ту же информацию с помощью одного и того же системного вызова.

Дочерние сервисные процессы, конечно, наследуют свои стандартные файловые дескрипторы ввода-вывода, уже открытые (, если только родительский сервисный процесс не изменит это, конечно ), и поэтому systemd-journaldвсе выходные данные журнала имеют учетные данные исходного родительский процесс.

Выходные данные журнала, созданные через сокет AF_LOCALв /run/systemd/journal/socket, говорят о том, что идиосинкразический протокол systemd-journaldпоступает через сокет дейтаграммы, а не через поток. Этот сокет помечен с помощью параметра сокета SO_PASSCRED, чтобы ядро ​​записывало одну и ту же информацию в каждую отправленную дейтаграмму, которая извлекается из каждой дейтаграммы с помощью systemd-journald.

Дополнительная литература

  • getsockopt(). Руководство Linux-программиста . 2017 -09 -15.
  • socket. Руководство Linux-программиста . 2018 -02 -02.
  • Джонатан де Бойн Поллард (2017 ).local-stream-socket-accept. Направляющая ноша . Программное обеспечение.
  • Джонатан де Бойн Поллард (2015 ). " Переменные среды ". Генератор на клиенте UNIX -Программный интерфейс сервера . Часто задаваемые ответы.
0
11.04.2021, 08:23
1 ответ

Как объяснил @cas, чтобы сохранить форматирование при отправке вывода sdiffв файл, включите-t

sdiff -t -w 185 fileone filetwo > filethree    

Чтобы управлять табуляцией, включите --tabsizeвместе с количеством пробелов

sdiff -t --tabsize 2 -w 185 fileone filetwo > filethree
1
28.04.2021, 22:53

Теги

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