如果另一个服务 (A) 重新启动,则重新启动 systemd 服务 (B),但前提是服务 (B) 已启动

如果另一个服务 (A) 重新启动,则重新启动 systemd 服务 (B),但前提是服务 (B) 已启动

我有一个标准的 systemd 服务(A = gpsd.service)在启动时运行。

我有一个自定义 systemd 服务(B = my_gps_logger.service),默认情况下未启用,因此用户必须手动启动它(用于诊断)。记录器服务是一个 bash 脚本gpscat /dev/ttyPS1 > my_log.log

如果我重新启动 gpsd,它会失败,因为我的记录器服务已打开设备。

BindsTo=gpsd.service我通过在记录器服务中使用来解决这个问题。

所以现在如果我重新启动 gpsd,我的记录器服务将停止并且 gpsd 重新启动正常。

但是,它不会重新启动我的记录器服务!

我不知道是否PartOf=是答案。感觉不对(我的测试显示它没有重新启动记录器)。

但我不想在 gpsd 启动时重新启动记录器服务。仅当记录器服务正在运行并且由于 gpsd 重新启动而停止/重新启动时。如果记录器服务没有运行,那么我不希望它自动启动。

我有什么想法可以配置 systemd 服务来实现这一目标吗?

相关内容