他のサービスに依存するサービスがあります。
[Unit]
After=main.service
Requires=main.service
[Service]
ExecStart=/usr/local/bin/dependent
Restart=always
素晴らしいポイント:
- 実行するとサービスも停止
systemctl stop main
します。dependent
- 実行するとサービスも開始されます
systemctl restart main
。dependent
ただし、実行してもsystemctl main start
依存サービスは開始されません。
どうすればいいですか?
答え1
そしてAfter=
パラメータBefore=
は厳しく両方のサービスを開始(および終了することもできます)するコマンドに使用されます(両方のサービスを開始するように要求された場合)。サービスを一覧表示しても、そのサービスも開始されるわけではありません。
他のサービスが開始されるかどうかを制御するには、または(リソースセクションで)または(リソースセクションで)をRequires=
使用する必要があります。Wants=
Conflicts=
[Unit]
WantedBy=
[Install]
あなたの場合、特定のサービスが依存するサービスが開始されたときに特定のサービスが開始されることを望みます(そうする理由がないため、自動的には発生しません)。ファイルに以下を追加して実行する必要がありますsystemctl enable dependent
。
[Install]
WantedBy=main.service
これはmain
、起動するとサービスも開始し、サービスが失敗しても停止しないことを意味しますmain
。