After a binding has been established, ypbind will send YPPROC_DOMAIN requests to the current NIS server at 5 minutes intervals. If it doesn't get an response or the NIS server reports that he doesn't have this domain any longer, ypbind will search for a new NIS server. You could tell ypbind to use network broadcasts to find a new server, what is insecure, or you could give it a list of known secure servers. In this case ypbind will send a ping to all servers in the order in which they are listed in the config file and use the first one which answers.
Unless the option -debug or -foreground is used, ypbind detaches itself from the controlling terminal and puts itself into background. ypbind uses syslog(3) for logging errors and warnings. At startup or when receiving signal SIGHUP, ypbind parses the file /etc/yp.conf and tries to use the entries for its initial binding.
A broadcast entry in the configuration file will overwrite a ypserver/server entry and a ypserver/server entry broadcast. If all given server are down, ypbind will not switch to use broadcast. ypbind will try at first /etc/hosts and then DNS for resolving the hosts names from /etc/yp.conf. If ypbind couldn't reconfigure the search order, it will use only DNS. If DNS isn't available, you could only use IP-addresses in /etc/hosts. ypbind could only reconfigure the search order with glibc 2.x. If the -broadcast option is specified, ypbind will ignore the configuration file. If the file does not exist or if there are no valid entries, ypbind exit.
In Fedora we use systemd for starting services. We need to finish starting process of ypbind service not before service is fully started, which means ypbind daemon is prepared to answer. There is a test script /usr/libexec/ypbind-post-waitbind used in ypbind.service, that waits for ypbind daemon to be fully connected to NIS server and waits by default up to 45s. Sometimes this is not enough, because network set up can take longer than 45s during boot, so starting ypbind.service fails. User can increase the timeout by setting an environment variable NISTIMEOUT in /etc/sysconfig/ypbind. For example NISTIMEOUT=180 means ypbind will wait up to 180 seconds for binding to a NIS server. Another option is to enable NetworkManager-wait- online.service, which will make ypbind to wait until network is properly set up.
In case something needs to be changed in the ypbind.service, it is adviced not to change the ypbind.service directly, but rather to create a new file under /etc/systemd/system/ypbind.service.d/, i.e. if we need to start ypbind before service foo.service, we can create file /etc/systemd/system/ypbind.service.d/wait-foo.conf with the following content:
If you need to pass other arguments to ypbind daemon withing systemd unit file, you can set these arguments as OTHER_YPBIND_OPTS environment variable in /etc/sysconfig/ypbind. For example in order to set a fixed port ypbind should run on, you can specify OTHER_YPBIND_OPTS="-p 876" in /etc/sysconfig/ypbind.
DHCP client by defualt changes /etc/yp.conf in case DHCP server sends NIS configuration in the respond. In that case /etc/dhcp/dhclient.d/nis.sh changes /etc/yp.conf according such configuration and creates a back-up copy of the original configuration file into /var/lib/dhclient/nis.conf.predhclient.$interface. In order to disable changing /etc/yp.conf by DHCP client, add PEERNIS=no into /etc/sysconfig/network.
-i, -ping-interval ping-interval
ypbind-mt was written by Thorsten Kukuk <firstname.lastname@example.org>.