2つのシステムサービスがあり、test-dl.service
test-db.service
最初のサービスが成功した場合にのみ順番に実行する必要があります。
私はそれを使用しています
After
2 つのサービス間の順序を設定するオプションです。RequiredBy
dlサービスが成功したときに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
ご協力ありがとうございます