Стандартный ввод для активации сокета Systemd

Не превышайте -регулярное выражение:

$ csplit logfile '/^===/'

Это создает xx00для первого раздела и xx01для второго.

В качестве альтернативы, если у вас есть другие строки, начинающиеся с ===, которые вы не хотите разбивать на:

$ csplit logfile '/^=== Output from/'

Чтобы заменить xxдругой фиксированной строкой, используйте-p(строка не может быть взята из входных данных, к сожалению ).

1
07.11.2019, 22:32
1 ответ

Понятно. Файл сервисного модуля нуждается в опции StandardInput=socket, чтобы принимать данные из сокета. Полный файл должен выглядеть так:

# cat /etc/systemd/system/foo@.service 
[Unit]
Description=Foo Service
After=network.target foo.socket
Requires=foo.socket

[Service]
Type=simple
ExecStart=/usr/local/bin/foo.sh
TimeoutStopSec=5
StandardInput=socket

[Install]
WantedBy=default.target
2
27.01.2020, 23:40

Теги

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