Запуск процесса серверного приложения вместе с "регистратором" - PullRequest
1 голос
/ 16 июня 2020

Я получил код приложения, который может быть запущен на Linux ядре 4.4.60, как показано ниже cmd - согласно их примечанию к приложению: -

/usr/sbin/server_application | logger -t tag &

Если я запустил server_application только с «server_application & "(в фоновом режиме), то сокет, который пытается создать процесс, не запускается. И, очевидно, время ожидания client_application (запускаемое отдельно, конечно) истекает.

Из моей информации, утилиты linux logger делают только записи в системном журнале.

В. - Что может понадобиться приложению, которое требует, чтобы приложение регистрировало записи тегов в системном журнале?

Я пытаюсь реконструировать, зачем ему именно регистратор.

Любые мысли по этому поводу были бы весьма признательны.

Заранее спасибо.

1 Ответ

0 голосов
/ 16 июня 2020

Если вы запустите server_application в фоновом режиме, у процесса может вообще не быть стандартного вывода , открытого для чего-либо, и любая запись в stdout завершится ошибкой. Если вы создаете конвейер, соединяющий стандартный вывод с программой, то server_application будет иметь разные характеристики для своего stdout.

Вы также можете попытаться выяснить разницу, запустив эти два с strace , например:

strace -o /tmp/syscall.log /usr/sbin/server_application &
strace -o /tmp/syscall.log /usr/sbin/server_application | logger -t tag &

и путем чтения /tmp/syscall.log поиска сбойных системных вызовов ближе к концу прогона для первого и последующего сравнения их с вызовами из последнего.

...