我有 2 个 systemd 服务test-dl.service
test-db.service
,只有当第一个服务成功时,它们才必须按顺序执行。
我在用着
After
设置两个服务之间的顺序的选项。RequiredBy
当 dl 服务成功时触发 db 服务的选项。
requiredBy/Requires 文档说“如果此单元被激活,列出的单元也将被激活。如果其他单元之一无法激活,并且在失败单元上设置了排序依赖项 After=,则该单元将不会被激活。”开始了。”
但是,我观察到即使第一个服务失败,第二个服务也会启动。
我的代码片段test-dl.service
失败了,并且test-db.service
意外触发了。
测试-dl.service
[Unit]
Description=The downloader.
After=network-online.target
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'sleep 10 ; exit 5'
测试数据库服务
[Unit]
Description=The parser.
After=test-dl.service
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'exit 0'
[Install]
RequiredBy=test-dl.service
感谢您的帮助