systemd ::条件要求文件内容匹配

systemd ::条件要求文件内容匹配

我有一项服务(假设它称为 xrootd),如果通用配置文件中有某个声明,则需要启动另一项服务(称为 cmsd)。如果声明存在于配置文件中,是否有办法添加 Requires?

答案1

我能想到的最好的解决方案是写一个发电机哪些符号链接cmsd.servicexrootd.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

相关内容