小编Ste*_*ier的帖子

systemd:服务A运行完成后如何启动服务B?

我需要模拟 Upstart 的“停止时启动”行为,其中服务 B 在服务 A 运行完成后启动,但在 systemd 中。我怎么做?

我在文件的部分中看到了对"After="and"Before="子句的引用,但它们似乎导致服务 B 在服务 A 已启动后启动。同样,在启动服务 B 之前,我需要等到服务 A运行完成[Unit]*.service

我整理了一个简单的例子来处理这种行为。我把我的*.service文件放在/etc/systemd/system,启用这两个服务,然后重新启动。我希望first.shsecond.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

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

systemd ×1