私のシャットダウンにはかなり時間がかかり(Debian 8.1を使用しています)、システムをシャットダウンする前にネットワークドライブをアンマウントすることで解決できることがわかりました。どうやら、すべてのドライブがアンマウントされる前にネットワークが切断されます。
これを自動的に行うには、systemdサービスを作成しようとしましたが、機能しません。つまり、アンマウントが間に合わず、シャットダウンプロセスにまだかなり時間がかかります。私のアプローチは この質問への回答 とsystemd.service manページの閲覧に触発されています...
[unit]
description=Unmount network drives on shutdown
Before=shutdown.target reboot.target halt.target network.target
[Service]
type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/bin/sh umount /media/networkdrive1 /media/networkdrive2
[Install]
WantedBy=multi-user.target
編集
ネットワークドライブは、/ etc/fstabに次の行でマウントされます。
//192.168.1.5/networkdrive1 /media/nw1 cifs _netdev,uid=myuser,credentials=/home/myuser/.credfile
//192.168.1.5/networkdrive2 /media/nw2 cifs _netdev,uid=myuser,credentials=/home/myuser/.credfile
3日間の検索とテストの後、私は実用的なソリューションを開発しました。これは、Debian-Jessie、Linux Mint、i386(32ビット)インストール用です。私はネットワークのCIFS共有を持っています。これらの共有が最初にアンマウントされていない場合、シャットダウンまたはリブートが120秒間ハングします。このスクリプトを使用すると、再起動またはシャットダウンする前に手動で共有をアンマウントする必要はありません。
自動CIFS umountスクリプト、シャットダウンおよび再起動時に実行
次のスクリプトを/etc/init.d/aaaumount
として作成します(スクリプトは番号順に実行されます。そのため、aaa
が最初に実行されます)。
#!/bin/sh
#
# aaaumount initscript
#
### BEGIN INIT INFO
# Provides: aaaumount
# Required-Start: $local_fs $remote_fs
# Required-Stop: $remote_fs
# Default-Start: S
# Default-Stop: 0 1 6
# Short-Description: umounts cifs shares
# Description: This script unmounts cifs shares
### END INIT INFO
case "$1" in
stop)
umount -t cifs -af
esac
実行可能にする:
Sudo chmod 755 /etc/init.d/aaaumount
/ lib/systemd/system /にあるサービスへのシンボリックリンクを作成します。
cd /lib/systemd/system/
Sudo ln -s /dev/null aaaumount.service
/etc/rc0.d
と/etc/rc6.d
の両方にシンボリックリンクを作成します(0
と6
はシャットダウン/再起動の実行レベルです):
Sudo ln -s /etc/init.d/aaaumount /etc/rc0.d/K01aaaumount
Sudo ln -s /etc/init.d/aaaumount /etc/rc6.d/K01aaaumount
それをアクティブにします:
Sudo systemctl enable aaaumount.service
_netdev
マウントオプションを/etc/fstab
のリモートファイルシステムに追加します。 systemctl daemon-reload
を実行すると、remote-fs.target
の依存関係がネットワークにマウントされます。 systemctl list-dependencies remote-fs.target
で確認してください。このようなファイルシステムは、ネットワークが停止する前にマウント解除されます。
試行錯誤の末、Ubuntu 16.04では、システムがWi-Fiを使用するために必要なwpa_supplicant.service
がsystemdで管理されていない(そしてそのsystemdユニットが「無効」になっている)と考えました。 DBusを介して何かによって開始されたようです。理由はまだわかりませんが、シャットダウンされますbeforenetwork-online.target
およびnetwork.target
。
最後に、ドライブが正しくマウント解除されたことを確認するために、マウントユニットにAfter=graphical.target
を追加しました。これを行うには、次のようにx-systemd.requires=graphical.target
を/etc/fstab
ファイルのオプションに追加します。
mount.cifs
で始まるオプションを無視するには、マウントユーティリティ(私の場合はx-
)が必要です。これは、バージョン6.5より前のmount.cifs
の場合とは異なります。