Как перенаправить содержимое файла журнала в журнал systemd?

У меня есть программа, которая принимает параметр --log-file. Я хочу обернуть эту программу в службу systemd и записать журнал в журнал.

Программа может работать в режиме демона и поддерживает перезапуск и остановку.

Я нашел systemd-cat, но он принимает только трубку.


person David S.    schedule 05.03.2017    source источник


Ответы (3)


Попробуйте использовать bash функцию подстановки процесса.

myapp --log-file >(systemd-cat) 
person Mark Stosberg    schedule 05.03.2017

Поместите следующую команду в ExecStart файла служебной единицы

myapp --log-file /dev/stdout
person AbdulKareem    schedule 18.03.2017
comment
Пытался, получил ERROR [Errno 6] No such device or address: '/dev/stdout' - person David S.; 20.03.2017
comment
Мой bad.i не знал, что stdout символически связан с сокетом journald, на котором открытый системный вызов не работает - person AbdulKareem; 20.03.2017

Основываясь на предложении Марка Стосберга. Что сработало для меня, так это использовать замену процесса с помощью bash.

ExecStart=/bin/bash -c '/location/app --log >(systemd-cat)'
person Nishit Joseph    schedule 03.04.2020