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が実行されないことを読みました。これを達成するより良い方法はありますか?
ありがとうございます!