Захват вывода systemd -запуск --области видимости в журнал

ZSH просто работает таким образом./etc/profileНЕ является файлом инициализации для ZSH . ZSH использует /etc/zprofileи ~/.zprofile.

Файлы инициализации для ZSH:

  1. /etc/zshenv
  2. ~/.zshenv
  3. режим входа :
    1. /etc/zprofile
    2. ~/.zprofile
  4. интерактивный :
    1. /etc/zshrc
    2. ~/.zshrc
  5. режим входа :
    1. /etc/zlogin
    2. ~/.zlogin

enter image description here

Советы:

  • Оболочка по умолчанию, открытая в вашем терминале в Linux, представляет собой интерактивную оболочку без входа -. Но в macOS это оболочка входа.

Ссылки

0
22.11.2021, 10:32
1 ответ

После дальнейших экспериментов я обнаружил, что наслоение systemd-run --scopeи systemd-catправильно захватывает метаданные, за исключением некоторых пограничных случаев; мое тестирование было просто слишком узким, и мне удалось попасть именно в них.

Чтобы уточнить, предположительно существует состояние гонки между тем, когда journald обрабатывает входящее сообщение, и когда сборщик мусора systemd очищает единицу области видимости после ее смерти.

В моих тестах, если я обернул -более продолжительный работающий процесс в эти два инструмента или добавил спящий режим в конец команды one -off, записи журнала должным образом обогащались метаданными модуля и т.п. Однако мне пришлось использовать форму «exec» systemd-cat, т.е. передать команду для выполнения после --. Трубопровод не работал. Я попытался открыть оболочку под systemd-run --scope, выполнить команду и передать вывод в systemd -cat. Тем не менее, несмотря на то, что я включил сон после конвейера, чтобы избежать вышеупомянутого состояния гонки, созданные записи журнала не были обогащены метаданными модуля.

0
28.11.2021, 00:42

Теги

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