当您创建两个或多个自定义 systemd 服务时,您如何知道它们将运行的顺序?这个命令会是确定的吗?
我在做Type = idle这应该意味着
idle 的行为与 simple 非常相似;但是,服务程序的实际执行会延迟,直到所有活动作业都被调度。这可用于避免 shell 服务的输出与控制台上的状态输出交错。注意这种类型只对提高控制台输出有用,作为通用的单元排序工具没有用,而且这种服务类型的效果是5s超时,之后无论如何都会调用服务程序
下面是我的/etc/systemd/system/myservice1.service
#!/bin/bash
[Unit]
Description=my service
After=default.target
[Service]
Type=idle
ExecStart=/root/my_service1.sh
TimeoutStartSec=0
[Install]
WantedBy=default.target
然后我做
{ create /root/my_service.sh }
chmod 700 /root/my_service1.sh
systemctl daemon-reload
systemctl enable my_service1
如果我创建了许多空闲类型的服务,我如何知道这些服务将以哪个顺序运行?我确实希望它们仅在系统完全启动并且与启动相关的所有内容都完成后才发生。
然后我计划有一些自定义do_this.service
和do_that.service
. 我还没有决定如何命名一切。
包含在您的服务部分中的属性
Before
和应该允许您在不同的systemd服务之间强加一个顺序,而不仅仅是一个服务和“默认”目标(有关更多信息,请参见此处)。After
[Unit]
因此,如果您希望myservice1.service在myservice2.service之前启动,添加应该就足够了
到您的服务定义文件,并且还合理地
到myservice2.service。