Systemd:失敗が発生しても必須の依存関係がトリガーされます。

Systemd:失敗が発生しても必須の依存関係がトリガーされます。

2つのシステムサービスがあり、test-dl.service test-db.service最初のサービスが成功した場合にのみ順番に実行する必要があります。

私はそれを使用しています

  • After2 つのサービス間の順序を設定するオプションです。
  • RequiredBydlサービスが成功したときにdbサービスをトリガーするオプション。

requireBy / Requiresのドキュメントには、「このデバイスがアクティブになると、リストされたデバイスもアクティブになります。他のデバイスの1つがアクティブに失敗し、After =ソート依存関係が失敗したデバイスに設定されている場合、そのデバイスはアクティブになりません」と記載されています。ここです。 」

ところで、最初のサービスが失敗しても、2番目のサービスが起動することを観察しました。

私のコードスニペットはtest-dl.service失敗し、test-db.service予期せず実行されます。

テスト-DL.サービス

[Unit]
Description=The downloader.
After=network-online.target

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'sleep 10 ; exit 5'

テストデータベースサービス

[Unit]
Description=The parser.
After=test-dl.service

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'exit 0'

[Install]
RequiredBy=test-dl.service

ご協力ありがとうございます

関連情報