別のサービス(A)が再起動したら、systemdサービス(B)を再起動します。ただし、サービス(B)がすでに開始されている場合にのみ該当します。

別のサービス(A)が再起動したら、systemdサービス(B)を再起動します。ただし、サービス(B)がすでに開始されている場合にのみ該当します。

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

ベストアンサー1

おすすめ記事