コンピュータがシャットダウンする前に、Systemdが電子メールを送信するスクリプトを実行することを試みます。 Systemdはサービスが開始された逆の順序でサービスを終了するため、と入力するとAfter=network.target
サービスが以前に終了することがわかりますnetwork.target
。
ただしAfter=
、and 行Wants=
にどんな依存関係があっても、電子メールスクリプトが実行される前にネットワーク接続が失われます。電子メールを送信することもありますが、ほとんどの場合はそうではありません。これは競合状態があることを示し、Systemdはネットワークサービスを終了する前にスクリプトが完了するのを待ちません。
私のユニットファイルは次のとおりです。
[Unit]
Description=Send email before shutdown
Wants=network.target nss-lookup.target network-online.target networking.service NetworkManager.service network-manager.service
After=network.target nss-lookup.target network-online.target networking.service NetworkManager.service network-manager.service
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/home/user1/send_email.sh
[Install]
WantedBy=multi-user.target
その雑誌はこう言いました。
Jun 20 13:13:14 caesar systemd[1]: Stopped Availability of block devices.
Jun 20 13:13:14 caesar NetworkManager[699]: <info> [1559301194.4305] device (wlx24050fd83726): state change: deactivating -> discon
Jun 20 13:13:14 caesar NetworkManager[699]: <info> [1559301194.4629] dhcp4 (wlx24050fd83726): canceled DHCP transaction, DHCP clien
Jun 20 13:13:14 caesar NetworkManager[699]: <info> [1559301194.4629] dhcp4 (wlx24050fd83726): state changed bound -> done
Jun 20 13:13:14 caesar NetworkManager[699]: <info> [1559301194.4648] manager: NetworkManager state is now DISCONNECTED
Jun 20 13:13:14 caesar NetworkManager[699]: <warn> [1559301194.4661] sup-iface[0xb4fd40,wlx24050fd83726]: connection disconnected (
Jun 20 13:13:14 caesar NetworkManager[699]: <info> [1559301194.4662] device (wlx24050fd83726): supplicant interface state: complete
Jun 20 13:13:14 caesar send_email.sh[21782]: s-nail: Certificate depth 2
Jun 20 13:13:14 caesar send_email.sh[21782]: s-nail: subject = /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert
....
Jun 20 13:13:56 caesar send_email.sh[21782]: s-nail: could not initiate SSL/TLS connection: error:00000000:lib(0):func
このように難しい必要はないと思います。誰でも私が間違っていることを指摘してくれてありがとう。
答え1
「Requires=network.target」行も指定する必要があります。より多くの情報が必要な場合は訪問してくださいhttps://fedoramagazine.org/systemd-unit-dependent-and-order/