[unit]オプション以降、systemdが機能しない

[unit]オプション以降、systemdが機能しない

myweb.service次のファイルがあります

[Unit]
Description=myweb - A simple hello world program
After=bluetooth.service

[Service]
Type=simple
User=root
ExecStart=/usr/bin/docker run -p 2222:4343 manikanth/webapp
Restart=on-failure

[Install]
#WantedBy=multi-user.target

特に無効にbluetooth.serviceして確認しました。ただし、サービスはまだアクティブです。私はこれが原因だと思ったので、WantedBy私の意見です。問題はまだ存在します

しない正しい方法は何ですか?育てるたとえば、依存サービスが有効になっていない場合はbluetooth.serviceどうなりますか?

答え1

Requisite=このオプションとこのオプションを探している可能性がありますAfter=

~からマニュアルページ

Requires=に似ています。ただし、ここにリストされているセルがまだ起動していない場合は開始されず、トランザクションはすぐに失敗します。

Requires=この場合、うまくいかないのはbluetooth.service起動時に起動されることですmyweb.serviceRequisite=オプションは起動を試みませんが、失敗がbluetooth.service表示されますmyweb.service

答え2

myweb.service私の記憶が正しい場合は起動時にのみ有効にし、bluetooth.serviceそうでなければmyweb.serbice。これが正しい場合は、以下の回答を読んでください。そうでない場合は訂正してください!

Requiresあなたは本当にAfter。ユニットファイル間の依存関係をソートするハイブのみを使用しますAfterが、Requires依存ユニットが失敗した場合も失敗します。したがって、Requires=bluetooth.service追加myweb.servicesystemctl daemon-reload

関連情報