重新启动后,Centos 7 autofs mount无法正常工作

我已经在Centos 7上设置了autofs。不过,重启之后,挂载/ home /目录花费了一些时间,甚至当我“cd”进入时也是如此。 它只有三次尝试成功:

[root@localhost ~] cd /home/<user> -bash: cd: /home/<user>: No such file or directory 

并且,autofs已启用,所以我希望它在重启后启动:

 [root@localhost etc]# systemctl status autofs autofs.service - Automounts filesystems on demand Loaded: loaded (/usr/lib/systemd/system/autofs.service; enabled) Active: active (running) since Tue 2015-07-21 10:34:38 HKT; 1h 13min ago Process: 1379 ExecStart=/usr/sbin/automount $OPTIONS --pid-file /run/autofs.pid (code=exited, status=0/SUCCESS) Main PID: 1385 (automount) CGroup: /system.slice/autofs.service └─1385 /usr/sbin/automount --pid-file /run/autofs.pid Jul 21 10:34:38 localhost.localdomain systemd[1]: Starting Automounts filesystems on demand... Jul 21 10:34:38 localhost.localdomain automount[1385]: setautomntent: lookup(sss): setautomntent: No such file or directory Jul 21 10:34:38 localhost.localdomain systemd[1]: Started Automounts filesystems on demand. 

这是/etc/auto.master:

 /misc /etc/auto.misc /net -hosts +dir:/etc/auto.master.d /home /etc/auto.home /san /etc/auto.san +auto.master 

/etc/auto.master文件:

 * -fstype=nfs,rw 192.254.100.4:/home_external/user_home_local/& 

/etc/auto.san:

 mysql_db 192.254.100.4:/san_external/mysqldb 

我怀疑类似的原因,当重启后,MySQL启动,它有一个错误,说不能'cd'到/ san / mysql_db /。 但机器启动后,手动重新启动mysql的作品。 有任何想法吗? 谢谢vm

我经历了类似的事情。

也就是说,重新启动之后挂载了自动安装的主目录的用户login,直到我用“systemctl start rpcbind”手动启动rpcbind。 这是迄今为止所有最新的Cent7更新。

我发现修改autofs单元文件依赖rpcbind和一些其他服务解决了我的问题。 请参阅下面的“After”代码块中的“Requires = network.target rpc-statd.service rpcbind.service”行…

之前:/usr/lib/systemd/system/autofs.service

 [Unit] Description=Automounts filesystems on demand After=network.target ypbind.service sssd.service [Service] Type=forking PIDFile=/run/autofs.pid EnvironmentFile=-/etc/sysconfig/autofs ExecStart=/usr/sbin/automount $OPTIONS --pid-file /run/autofs.pid ExecReload=/usr/bin/kill -HUP $MAINPID TimeoutSec=180 [Install] WantedBy=multi-user.target 

之后:/usr/lib/systemd/system/autofs.service

 [Unit] Description=Automounts filesystems on demand Requires=network.target rpc-statd.service rpcbind.service After=network.target ypbind.service sssd.service [Service] Type=forking PIDFile=/run/autofs.pid EnvironmentFile=-/etc/sysconfig/autofs ExecStart=/usr/sbin/automount $OPTIONS --pid-file /run/autofs.pid ExecReload=/usr/bin/kill -HUP $MAINPID TimeoutSec=180 [Install] WantedBy=multi-user.target 

帽子提示: https : //www.centos.org/forums/viewtopic.php?f=47&t=51789

这是问题的根源:

  • systemd首先启动sssd
  • sssd在sssd中configuration为分叉进程。 完全加载时,sssd不会发出systemd信号。 启动后,systemd认为sssd已加载并继续启动过程。
  • 在某些情况下,可能需要一段时间才能加载sssd,然后开始回答autofs / passwd / … nss查询。 我已经看到系统需要5秒钟。
  • 如果在加载sssd之前autofs启动,则autofs映射不可用。

有几种方法可以解决这个问题:

  • 干净的解决scheme是,sssd实现systemd信令,所以它可以通知系统满载时
  • 尝试加快sssd加载。 检查你的sssdconfiguration,检查是否有一个原因为什么加载速度太慢。
  • hacky的解决scheme是在autofs启动之前人工增加足够的延迟。 (这是以前的答案是如何工作的,它只是在autofs之前添加了另一个服务,所以sssd接收更多的时间。)这在某些情况下是不够的。 错误https://bugzilla.redhat.com/show_bug.cgi?id=1189767中提出了另一个解决scheme&#x3002; 加

     ExecStartPre=/bin/sleep 10 

    到你的sssd.unit