bash - 如何获得/etc/fstab 中的cifs.mount 挂载完成后的触发
问题描述
如何获得/etc/fstab 中的cifs.mount 挂载完成后的触发
我想挂载一些脚本,但是脚本会访问到一些cifs.mount 之后的目录,我在启动最后的/etc/rc.d/rc.local中执行了脚本发现cifs.mount 还是没有完成!想请教除了nohug或者sleep之外的解决办法!
获得cifs.mount 之后的触发也行
=========================
在stackoverflow上找到了答案,如果需要保持执行需要添加
RemainAfterExit=true
WantedBy = multi-user.target #可能更加合适我现在的应用场景
(如果你用systemd) 新开一个unit, 里面写上After=XXX-XXX.mount (根据那个mountpoint 的unit名)
. 用这个unit启动你的脚本
以下是写都写了系列 ..
systemd是一个管理服务和mount和其他很多东西的东西。每个服务或mount任务都是作为一个"unit"来管理的。
centos7开始也是systemd。如果你是centos 7 就应该已经在用systemd了。
这个gist 定义了一个新的unit, 这个unit会在另一个unit完成后启动。
你还需要systemctl | grep mount
找到你那个cifs mount的unit名 (比如我机器上/var/lib/docker
对应的unit是var-lib-docker.mount
)。把mount的unit名和你的脚本的执行命令写到上面gist的unit文件里,保存到/etc/systemd/system/run-my-script.service
然后重启。
这篇关于bash - 如何获得/etc/fstab 中的cifs.mount 挂载完成后的触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!