「ExecStart = / usr / bin / java -jar」を使用する複数のサービスがあり、できるだけ遅く(ネットワーク、ファイアウォール、およびログインサービスの後)起動したいと思います。
「After」と「Requires」の[Unit]にさまざまな依存関係をリストしてみましたが、何もしないようです。起動ログを見ると、すべての依存関係の前にサービスが開始されます。
私は(例えば)試してみました。
[Unit]
Description=My Service 01
Requires=network.target
After=systemd-user-sessions.service network.target
ブート順序で crond が最後に始まるのを見ることができて試してみました。
[Unit]
Description=My Service 02
After=crond.service
違いはありません。私のサービスはクローンよりもずっと前に始まりました。
どんな提案がありますか?私は何が間違っていましたか?状況はRed Hat 7.2と7.3でも同じです。
答え1
これアーチウィキsysyemdページこれに関するいくつかの洞察は次のとおりです。
Wants= と Requires= は After= を意味しません。つまり、After =を指定しないと、両方のデバイスが並列に起動されます。
各依存関係に以下を追加する必要があります。両方a以降Requires
にAfter
開始する各ユニット:
[Unit]
Description=My Service 02
Requires=crond.service
After=crond.service