我正在编写一个需要=服务 A 或服务 B 的单元文件,但我不在乎是哪个。我该如何指定这一点?
答案1
最简单的方法是添加 A 或 B 的测试:ExecStartPre
[Unit]
Description=this unit needs A or B
[Service]
ExecStartPre=/bin/bash -c '/usr/bin/systemctl is-active --quiet A || /usr/bin/systemctl is-active --quiet B'
ExecStart=/the/actual/command
另一种方法是将 A 或 B 作为单独的服务单元进行测试:
[Unit]
Description=this service is active if A or B are present
[Service]
[Unit]
Description=test for A or B
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/bash -c '/usr/bin/systemctl is-active --quiet A || /usr/bin/systemctl is-active --quiet B'
然后将依赖项添加A_B_checker.service
到主服务。