我有一个标准的 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 服务来实现这一目标吗?