Недавно я установил сервер Fedora 17 для нашей сети, и у меня возникли проблемы с запуском службы NIS при запуске. Вот некоторые логи из системы:
Aug 21 12:57:12 cairnwell ypbind-pre-setdomain[718]: Setting NIS domain: 'indigo-nis' (environment variable)
Aug 21 12:57:13 cairnwell ypbind: Binding NIS service
Aug 21 12:57:13 cairnwell rpc.statd[730]: Unable to prune capability 0 from bounding set: Operation not permitted
Aug 21 12:57:13 cairnwell systemd[1]: nfs-lock.service: control process exited, code=exited status=1
Aug 21 12:57:13 cairnwell systemd[1]: Unit nfs-lock.service entered failed state.
Aug 21 12:57:14 cairnwell setroubleshoot: SELinux is preventing /usr/sbin/rpc.statd from using the setpcap capability. For complete SELinux messages. run sealert -l 024bba8a-b0ef-43dc-b195-5c9a2d4c4d41
Aug 21 12:57:15 cairnwell kernel: [ 18.822282] bnx2 0000:02:00.0: em1: NIC Copper Link is Up, 1000 Mbps full duplex
Aug 21 12:57:15 cairnwell kernel: [ 18.822925] ADDRCONF(NETDEV_CHANGE): em1: link becomes ready
Aug 21 12:57:15 cairnwell NetworkManager[621]: <info> (em1): carrier now ON (device state 20)
Aug 21 12:57:15 cairnwell NetworkManager[621]: <info> (em1): device state change: unavailable -> disconnected (reason 'carrier-changed') [20 30 40]
Aug 21 12:57:15 cairnwell NetworkManager[621]: <info> Auto-activating connection 'System em1'.
Aug 21 12:57:15 cairnwell NetworkManager[621]: <info> Activation (em1) starting connection 'System em1'
Aug 21 12:57:15 cairnwell NetworkManager[621]: <info> (em1): device state change: disconnected -> prepare (reason 'none') [30 40 0]
.......
Aug 21 12:57:19 cairnwell sendmail[790]: YPBINDPROC_DOMAIN: Domain not bound
Aug 21 12:57:26 cairnwell sendmail[790]: YPBINDPROC_DOMAIN: Domain not bound
Aug 21 12:57:31 cairnwell sendmail[790]: YPBINDPROC_DOMAIN: Domain not bound
Aug 21 12:57:35 cairnwell sendmail[790]: YPBINDPROC_DOMAIN: Domain not bound
Aug 21 12:58:00 cairnwell ypbind: Binding took 47 seconds
Aug 21 12:58:00 cairnwell ypbind: NIS server for domain indigo-nis is not responding.
Aug 21 12:58:01 cairnwell ypbind: Killing ypbind with PID 733.
Aug 21 12:58:01 cairnwell ypbind-post-waitbind[734]: /usr/lib/ypbind/ypbind-post-waitbind: line 51: kill: SIGTERM: invalid signal specification
Aug 21 12:58:01 cairnwell systemd[1]: ypbind.service: control process exited, code=exited status=1
Aug 21 12:58:01 cairnwell systemd[1]: Unit ypbind.service entered failed state.
Судя по этим журналам, служба ypbind запускается в 12:57:12, но сетевой интерфейс не работает до 12:57:15. Я предполагаю, что это вызывает тайм-аут ypbind при попытке подключения.
Как следствие, сбой NIS вызывает проблемы с NFS, которая больше не может правильно отображать UID. Эта проблема, похоже, не решается путем фактического запуска ypbind и т. Д., Поэтому мне пришлось установить для всех своих общих ресурсов NFS значение noauto.
Я пробовал вручную добавить NETWORKDELAY
и NETWORKWAIT
в / etc / sysconfig / network, а также запущен systemctl enable NetworkManager-wait-online.service
как я видел, предлагалось в некоторых местах, но ни один из них не оказал никакого эффекта.
Относительно легко исправить вручную, перезапустив ypbind и смонтируя общие ресурсы NFS после запуска сети, но делать это каждый раз при перезагрузке сервера далеко не идеально.
Кто-нибудь знает простой (и желательно без взлома) способ отложить запуск ypbind до тех пор, пока сетевой интерфейс не будет полностью готов?
Я отправляю ответ, потому что для комментирования необходимо> 50 репутации.
Я собираюсь указать вам на это очень хорошая статья на случай, если вы еще не наткнулись на это.
Также есть очень интересная строка:
В качестве альтернативы вы можете изменить свою службу, для которой сеть должна быть в рабочем состоянии, включив After = network-online.target и Wants = network-online.target.
Обратите внимание на "Альтернативно".
Итак, вам, вероятно, придется создать этот файл: /etc/systemd/system/ypbind.service.d/waitfornetwork.conf
[Service]
After=network-online.target
Wants=network-online.target
Этот ответ возможно решение. Не гарантированный решение.