起動時に実行される標準システムサービス(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サービスを構成する方法についてのアイデアはありますか?