既存のシステムサービスがワンショットを待つようにします。

既存のシステムサービスがワンショットを待つようにします。

Networking.service 実行が開始される前に起動だけでなく、実行を完了したいワンタイムサービスがあります。マニュアルページを読んで、これで十分だろうと思いました。

[Unit]
Description=mypre networking service
Before=networking.service
Requires=networking.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/configuremodem.bash
TimeoutStartSec=1min

[Install]
WantedBy=multi-user.target network-online.target

サービスには約20秒かかり、システムにログインしてステータスを確認してから、まだ実行中です。 systemd-analyzeを使用して重要なパスを確認した後、サービスがnetwork.serviceの前に開始されましたが、systemdが完了するのを待たないことがわかります。私の考えでは、これがマニュアルページを読むことの鍵です。また、以下を変更して目的の結果を得ました。

ExecStartPre=/usr/local/bin/configuremodem.bash
ExecStart=/bin/echo done

Preが終了するまでExecStartが実行されないことを読みました。これを達成するより良い方法はありますか?

ありがとうございます!

ベストアンサー1

おすすめ記事