%20%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%EF%BC%8C%E5%88%99%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%20systemd%20%E6%9C%8D%E5%8A%A1%20(B)%EF%BC%8C%E4%BD%86%E5%89%8D%E6%8F%90%E6%98%AF%E6%9C%8D%E5%8A%A1%20(B)%20%E5%B7%B2%E5%90%AF%E5%8A%A8.png)
我有一个标准的 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 服务来实现这一目标吗?