На Debian 8. У меня есть общий диск cifs, смонтированный через systemd:
$ cat /etc/systemd/system/external_dir.mount
[Unit]
Description=cifs mount script for /external_dir/
Requires=network-online.target
After=network-online.service
[Mount]
What=***
Where=***
Options=username=***,password=***
Type=cifs
Restart=on-failure
[Install]
WantedBy=multi-user.target
Однако при перезагрузке удаленной машины (например, из-за сбоя питания) systemd
диск не перемонтируется, даже если отображается статус «сбой»:
$ sudo systemctl status external_dir.mount
● external_dir.mount - cifs mount script for /external_dir/
Loaded: loaded (/etc/systemd/system/external_dir.mount; enabled)
Active: failed (Result: exit-code) since Thu 2017-04-13 04:12:16 ACST; 6h ago
Where: /external_dir
What: ***
Process: 413 ExecMount=/bin/mount -n *** /external_dir -t cifs -o username=***,password=*** (code=exited, status=32)
Apr 13 04:12:16 bob mount[413]: mount error(115): Operation now in progress
Apr 13 04:12:16 bob mount[413]: Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Apr 13 04:12:16 bob systemd[1]: external_dir.mount mount process exited, code=exited status=32
Apr 13 04:12:16 bob systemd[1]: Failed to mount cifs mount script for /external_dir/.
Apr 13 04:12:16 bob systemd[1]: Unit external_dir.mount entered failed state.
Если я перезапускаю службу вручную ( sudo systemctl restart external_dir.mount
), то она снова нормально запускается.
Как заставить systemd перемонтировать диск cifs, когда он снова станет доступен? Обратите внимание, что иногда удаленная машина простаивает часами, так как ночью отключается электричество, и мы не включаем его до утра.