我最近发现(除其他外)网络共享可以在访问时自动挂载。在 Ubuntu 中,有两个选项可以使用 autofs 或 systemd 的自动挂载功能。
也许有人可以告诉我这两个选项之间的区别(除了不同的配置)是什么。Autofs 似乎更灵活,因为可以为自动挂载位置配置脚本。这也可以使用 systemd 自动挂载吗?
更新 2017-07-25:
只是为遇到这个问题的每个人做一个简短的更新。
我选择了 systemd 自动挂载选项,因为它更方便、更容易配置,同时提供几乎相同的功能。
如果有 fstab 条目noauto
并x-systemd.automount
重新加载 systemd 守护进程 ( systemctrl daemon-reload
) 将生成一个自动挂载 systemd 单元/run/systemd/generator/
(至少这是在 ubuntu 16.04 下生成它的路径)。该单元将以 fstab 条目的挂载点命名。也就是说,如果您创建一个自动挂载点,/media/network/someserver/share
就会有一个 systemd 自动挂载单元media-network-someserver-share.automount
。然后可以(重新)启动此自动挂载单元以使用systemctl restart media-network-someserver-share.automount
.
你已经完成了。
为了执行与一些JavaScript单元测试因缘泊坞窗容器内(基于Ubuntu 14.04),我使用的是火狐开始在容器卡玛-脚本启动用xvfb-run
。启动脚本如下所示:
#!/bin/bash
set -o errexit
# nasty workaround as xvfb-run doesn't cleanup properly...
trap "pkill -f /usr/lib/firefox/firefox" EXIT
xvfb-run --auto-servernum --server-args='-screen 0, 1024x768x16' firefox $1
Run Code Online (Sandbox Code Playgroud)
启动浏览器并执行单元测试效果很好。执行测试后 karma 终止生成的浏览器实例 - 在我的例子中是通过 xvfb-run 启动 firefox 的脚本。
在上面的脚本中,您可以看到我trap
在退出脚本时注册了一个来杀死启动的 Firefox。这有效,但该脚本不是一个很好的公民,因为它终止当前正在运行的所有Firefox 实例,而不是仅仅终止由脚本启动的一个实例。我首先尝试杀死该xfvb-run
进程但杀死此进程对xvfb-run
脚本启动的子进程没有影响......
如果我xvfb-run
手动启动 Firefox,则会产生一堆生成的进程:
root@1d7a5988e521:/data# xvfb-run --auto-servernum --server-args='-screen 0, 1024x768x16' firefox &
[1] 348
root@1d7a5988e521:/data# ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 bash
348 …
Run Code Online (Sandbox Code Playgroud)