我有一项服务(假设它称为 xrootd),如果通用配置文件中有某个声明,则需要启动另一项服务(称为 cmsd)。如果声明存在于配置文件中,是否有办法添加 Requires?
答案1
我能想到的最好的解决方案是写一个发电机哪些符号链接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