I have a standard systemd service (A = gpsd.service) running at startup.
I have a custom systemd service (B = my_gps_logger.service) which is not enabled by default, so that a user has to manually start it (for diagnosis). The logger service is a bash script with
gpscat /dev/ttyPS1 > my_log.log
If I restart gpsd, it fails because my logger service has the device open.
I worked around that by using
BindsTo=gpsd.service in my logger service.
So now if I restart gpsd, my logger service stops and gpsd restarts ok.
HOWEVER, it does not restart my logger service !!
I don't know if
PartOf= is the answer. It feels wrong (and my tests show it didn't restart the logger).
But I don't want to restart my logger service anytime gpsd is started. Only if the logger service was running and was stopped/restarted because gpsd was restarted. If the logger service wasn't running, then I don't want it to autmomatically start up.
Any ideas how I can configure systemd services to achieve this?