我需要模拟 Upstart 的“停止时启动”行为,其中服务 B 在服务 A 运行完成后启动,但在 systemd 中。我怎么做?
我在文件的部分中看到了对"After="and"Before="子句的引用,但它们似乎导致服务 B 在服务 A 已启动后启动。同样,在启动服务 B 之前,我需要等到服务 A运行完成。[Unit]*.service
我整理了一个简单的例子来处理这种行为。我把我的*.service文件放在/etc/systemd/system,启用这两个服务,然后重新启动。我希望first.sh在second.sh“sleep for 2 seconds ”之前看到“...and we're out” ,但我没有得到那个结果,你将在下面看到。
我很感激你的指导。
====
这是我的服务文件、它们调用的脚本和 journalctl 输出。
这是“first.service”:
[Unit]
Description=First of two services
[Service]
ExecStart=/home/steve/play/systemd/oneAfterTheOther/first.sh
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
这是“first.sh”:
#!/usr/bin/env bash
nsec=10
echo "sleep for ${nsec} seconds"
sleep ${nsec}
echo "...and we're out"
Run Code Online (Sandbox Code Playgroud)
这是“second.service”:
[Unit]
Description=Second of two …Run Code Online (Sandbox Code Playgroud) systemd ×1