有一个 systemd 单元:
[Unit]
Description=home storage folder
After=remote-fs-pre.target
After=network.target
After=network-online.target
Wants=network-online.target
BindsTo=network-online.target
Conflicts=umount.target
Before=umount.target
[Mount]
What=//172.16.100.1/storage
Where=/home/username/Shared/storage
Type=cifs
Options=noauto,x-systemd.automount,noexec,noperm,iocharset=utf8,uid=1000,gid=1000,credentials=/etc/share_creds/home_samba
[Install]
WantedBy=remote-fs.target
安装很棒。systemctl stop它通常在没有 narekariya的情况下通过卸载。
但是,如果您关闭或重新启动安装了球的计算机,它会在尝试卸载它时挂起一分半钟。
请告诉我选择哪种方式以在关闭时摆脱挂起。
UPD
一些澄清:
1. Kubuntu 18.04.1
2. 自然,NetworkManager 驱动网络
UUPD
怀着感激之情,我将决定如何在 WiFi 连接中断之前捕捉到这一时刻,以便将卸载命令推送到它前面。
到目前为止,它只能这样工作:
#!/bin/bash
while read -r line; do
[[ "$line" =~ deactivating ]] && {
/bin/systemctl stop home-username-Shared-storage.mount
}
done < <(LANG=en_US nmcli monitor)
但。再次。测试时它可以工作。也就是说,如果我手动运行这个脚本,通过启动
systemctl start home-username-Shared-storage.mount它来安装球,然后当 WiFi 关闭时,球将被很好地卸载。但是,如果您让机器重新启动,它会再次冻结一分半钟并试图卸下球。
UUUPD作为一个拐杖,到目前为止我一直在考虑添加到[Mount] TimeoutSec=5同时,5 秒后卸载简单地以错误结束,然后计算机安静地重新启动。但是如果有比仅仅扼杀 umount 过程更漂亮的方法,那么我将不胜感激。
一般来说,正如聪明人所说,“吸食法力”。法力规则!!!
最初,任务是访问主服务器上的文件夹并在意外断开连接时摆脱冻结。
有以下输入:
所以。如果在我进入文件夹并在那里做某事或忘记关闭它的那一刻,有人打电话给我,那么文件管理器会紧紧挂起,直到硬重启。
已经在研究issue的过程中,找了很多参考,
autofs但是我不想放弃通过find来实现这一切的想法(已经是现在了)systemd如果有人有用,我会很高兴。我也很乐意接受知识渊博的人就这项任务的实施提出建设性的批评和实用的建议。
究竟发生了什么:
mkdir -p ~/Shared/storagesudo vi /lib/systemd/system/home-<username>-Shared-storage.automountsudo vi /lib/systemd/system/home-<username>-Shared-storage.mountsudo vi /lib/systemd/system/home-connection-monitor.servicesudo vi /usr/local/bin/home-connection-monitorsudo systemctl daemon-reloadsudo systemctl enable home-karpovan-Shared-storage.{,auto}mountsudo systemctl enable home-connection-monitor