我正在调查服务启动的延迟,my-service.service
即使它配置为在 后启动network.target
。使用 后systemd-analyze plot
,我注意到my-service.service
30 秒后开始network.target
,这似乎异常延迟。
为了排除故障,我进行了一项实验,创建了一个名为 的简单单元文件foo.service
,该文件仅在 100 毫秒后启动network.target
。奇怪的是,当我从foo.service
to复制配置my-service.service
并重新启动 Raspberry Pi 时,my-service.service
尽管配置与 相同,但仍然出现 30 秒的延迟foo.service
。
我很困惑为什么my-service.service
会遇到这种延迟foo.service
,尽管它们的配置是相同的。我很好奇 systemd 中是否内置了任何历史智能,其中my-service.service
历史上可能需要更多资源,导致即使在配置更改后它也会稍后启动。
有人可以解释为什么尽管共享相同的配置,但my-service.service
仍然在 30 秒后启动吗?network.target
foo.service
foo.service
[Unit] Description=foo.service After=network.target [Service] Type=simple ExecStart=/home/pi/foo.sh [Install] WantedBy=multi-user.target
foo.sh
#!/bin/bash while sleep 1; do echo "executing foo.sh"; done