Есть один демон, он запускается долго и после запуска требует дополнительного действия. Форкаться в нужный момент демон не умеет, об успешном запуске сигнализирует строкой «Finished loading» и открывает порт TCP.
Написан тривиальный юнит-файл
[Service]
Type=simple
ExecStart=/bin/qwerty
[Install]WantedBy=multi-user.target
Я признаться думал, что раз systemd умеет множеством способов ждать окончания запуска сервиса, и читает stdout сервиса, то он мог бы и грепать сразу, ну или открытия порта ждать. Однако никакой опции типа
ExpectStdout=Finished loading
Вопросы:
1) как красиво решить задачу (не переписывая демон и желательно без while ! grep log; do sleep 1m; done
)
2) Столько свистелок, а такой простой вещи Поттеринг не сделал? какого хрена?!
ps в данном конктерном случае демон - sia, но для топика это неважно.
UPD: Мне надо, что бы systemd запускал следующий демон (зависимый) только после появления Finished loading