systemdを使用して起動順序を調整する方法

systemdを使用して起動順序を調整する方法

Wi-FiがIPアドレス(dhcpcdベース)を受信したら、postfixをサーバーとして使用して電子メールを送信する必要があります。systemdデフォルトでは、postfixはwifi(wlan0)が準備される前に始まるようです。これに関連する結果は、postfixがバックグラウンドで実行できず、電子メールが正常に送信できないことです。ただし、次のスクリプトを実行すると(例:abc.sh)開始すると、Eメールは間違いなく次を通過します。

sleep 60
systemctl restart postfix
echo 'email content' | mail -s 'titile' [email protected] 

関連サービスファイルabc.sh次のように:

[Unit]
Description=pptp_setup
Requires=network-online.target
After=network-online.target

[Service]
Type=forking
ExecStart=/home/pi/script/abc.sh

[Install]
WantedBy=multi-user.target 

気づく睡眠60そしてsystemctl postfixの再起動電子メールが正しく配信されたことを確認する方法です。もし睡眠60postfixを再起動せずに適用すると、postfixが最初に正しく起動されなかったため、まだ電子メールの送信に失敗します(上記のようにIPを受信する前にロードされる可能性があります)。さらに、60秒間休止状態ではなくPostfixのみを再起動すると、Postfixの再起動はまだ失敗します。 必要=networkonline.targetそして 以降=networkonline.targetサービスファイルに適用されました。

私の質問は、IPアドレスを受信した後にWi-Fiが起動するようにpostfixを正しく設定する方法です。

ベストアンサー1

systemdこれは多くの人が何度も議論したように永遠の質問です。場所。最善の機会は、「遅いネットワーク」を介してアクティブにすることですIP_FREEBIND。サフィックスに対してのみ変更することはできませんが、代わりに以下を使用してシステム全体で変更します。

echo "1" > /proc/sys/net/ipv4/ip_nonlocal_bind

ルートアカウントから。マニュアルページでよく説明されています。ip(7)

おすすめ記事