Назад | Перейти на главную страницу

systemd :: conditional Требуется, если содержимое файла совпадает

У меня есть служба (скажем, она называется xrootd), которая потребует запуска другой службы (называемой cmsd), если в общем файле конфигурации есть определенное объявление. Есть ли способ добавить Requires, если объявление присутствует в файле conf?

Лучшее решение, которое я могу придумать, - написать генератор какие символические ссылки cmsd.service в xrootd.service.requires/, возможно, вот так (непроверено):

# /etc/systemd/system-generators/xrootd-requires-cmsd
#!/bin/bash
while read -r line; do
    if [[ $line =~ ^CertainDeclaration ]]; then
        requiresCmsd=true
        break
    fi
done
if [[ $requiresCmsd ]]; then
    mkdir -- "$1/xrootd.service.requires/"
    ln -s -t "$1/xrootd.service.requires/" /usr/lib/systemd/system/cmsd.service
fi