summaryrefslogtreecommitdiffstats
path: root/source/n/yptools/rc.yp
diff options
context:
space:
mode:
Diffstat (limited to 'source/n/yptools/rc.yp')
-rw-r--r--source/n/yptools/rc.yp153
1 files changed, 109 insertions, 44 deletions
diff --git a/source/n/yptools/rc.yp b/source/n/yptools/rc.yp
index 4c3b8decf..eda9634e4 100644
--- a/source/n/yptools/rc.yp
+++ b/source/n/yptools/rc.yp
@@ -10,49 +10,114 @@
# documentation in /usr/doc/yp-tools, /usr/doc/ypbind,
# /usr/doc/ypserv, and /usr/doc/Linux-HOWTOs/NIS-HOWTO.
-# # First, we must setup the NIS domainname. NOTE: this is not necessarily
-# # the same as your DNS domainname, set in /etc/resolv.conf. The NIS
-# # domainname is the name of a domain served by your NIS server.
-#
-# if [ -r /etc/defaultdomain ]; then
-# nisdomainname `cat /etc/defaultdomain`
-# fi
-#
-# # NIS SERVER CONFIGURATION:
-# # If you are the master server for the NIS domain, you must run ypserv to
-# # service clients on the domain.
-# if [ -x /usr/sbin/ypserv ]; then
-# echo "Starting NIS server: /usr/sbin/ypserv"
-# /usr/sbin/ypserv
-# fi
-#
-# # If you are the master server for the NIS domain, you must also run
-# # rpc.yppasswdd, which is the RPC server that lets users change their
-# # passwords. You might also want users to be able to change their shell
-# # and GECOS information, in which case you should comment out the first
-# # yppasswdd line and uncomment out the second one.
-# if [ -x /usr/sbin/rpc.yppasswdd ]; then
-# echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd"
-# /usr/sbin/rpc.yppasswdd
-# # echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd -e chsh -e chfn"
-# # /usr/sbin/rpc.yppasswdd -e chsh -e chfn
-# fi
-#
-# # If you have NIS slave servers, you might also want to start up
-# # rpc.ypxfrd, which transfers changes in the NIS domain to slave servers.
-# # Alternatively, rpc.ypxfrd can be run out of inetd.
-# if [ -x /usr/sbin/rpc.ypxfrd ]; then
-# echo "Starting NIS transfer server: /usr/sbin/rpc.ypxfrd"
-# /usr/sbin/rpc.ypxfrd
-# fi
-#
-# # NIS CLIENT CONFIGURATION:
-# # If you are a NIS client, all you need to do is run ypbind, which will
-# # broadcast across the network to find a server. Your NIS server might
-# # also be a client.
-# if [ -d /var/yp ]; then
-# echo "Starting NIS services: /usr/sbin/ypbind -broadcast"
-# /usr/sbin/ypbind -broadcast
-# fi
+# Set non-zero to enable yp client functions
+YP_CLIENT_ENABLE=1
+
+# Set non-zero to enable yp server functions
+YP_SERVER_ENABLE=0
+
+# If YP_SERVER_ENABLE is set, a non-zero YP_XFRD_ENABLE setting will
+# enable ypxfrd.
+YP_XFRD_ENABLE=0
+
+PID_PATH=/var/run
+
+yp_start() {
+
+ if [ $YP_SERVER_ENABLE -ne 0 ]; then
+ # NIS SERVER CONFIGURATION:
+ # If you are the master server for the NIS domain, you must run ypserv to
+ # service clients on the domain.
+ if [ -x /usr/sbin/ypserv ]; then
+ echo "Starting NIS server: /usr/sbin/ypserv"
+ /usr/sbin/ypserv
+ fi
+
+ # If you are the master server for the NIS domain, you must also run
+ # rpc.yppasswdd, which is the RPC server that lets users change their
+ # passwords. You might also want users to be able to change their shell
+ # and GECOS information, in which case you should comment out the first
+ # yppasswdd line and uncomment out the second one.
+
+ if [ -x /usr/sbin/rpc.yppasswdd ]; then
+ echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd"
+ /usr/sbin/rpc.yppasswdd
+ # echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd -e chsh -e chfn"
+ # /usr/sbin/rpc.yppasswdd -e chsh -e chfn
+ fi
+
+ # If you have NIS slave servers, you might also want to start up
+ # rpc.ypxfrd, which transfers changes in the NIS domain to slave servers.
+ # Alternatively, rpc.ypxfrd can be run out of inetd.
+ if [ $YP_XFRD_ENABLE -ne 0 ]; then
+ if [ -x /usr/sbin/rpc.ypxfrd ]; then
+ echo "Starting NIS transfer server: /usr/sbin/rpc.ypxfrd"
+ /usr/sbin/rpc.ypxfrd
+ fi
+ fi
+ fi
+
+ if [ $YP_CLIENT_ENABLE -ne 0 ]; then
+ # NIS CLIENT CONFIGURATION:
+ # If you are a NIS client, all you need to do is run ypbind, which will
+ # broadcast across the network to find a server. Your NIS server might
+ # also be a client.
+ if [ -d /var/yp ]; then
+ echo "Starting NIS services: /usr/sbin/ypbind -broadcast"
+ /usr/sbin/ypbind -broadcast
+ fi
+ fi
+}
+
+yp_stop() {
+ if [ -r ${PID_PATH}/ypbind.pid ]; then
+ echo "Stopping NIS services."
+ kill $(cat ${PID_PATH}/ypbind.pid)
+ fi
+
+ if [ -r ${PID_PATH}/ypxfrd.pid ]; then
+ echo "Stopping NIS transfer server."
+ kill $(cat ${PID_PATH}/ypxfrd.pid)
+ fi
+
+ if [ -r ${PID_PATH}/yppasswdd.pid ]; then
+ echo "Stopping NIS master password server."
+ kill $(cat ${PID_PATH}/yppasswdd.pid)
+ fi
+
+ if [ -r ${PID_PATH}/ypserv.pid ]; then
+ echo "Stopping NIS server."
+ kill $(cat ${PID_PATH}/ypserv.pid)
+ fi
+}
+
+# First, we must setup the NIS domainname. NOTE: this is not necessarily
+# the same as your DNS domainname, set in /etc/resolv.conf. The NIS
+# domainname is the name of a domain served by your NIS server.
#
+# If /etc/defaultdomain has not been configured we'll bail out.
+if [ -r /etc/defaultdomain -a -x /bin/nisdomainname ]; then
+ if [ "$(nisdomainname)" == "(none)" ]; then
+ nisdomainname `cat /etc/defaultdomain`
+ fi
+else
+ echo "/etc/rc.d/rc.yp: NIS not configured. Hint: set up /etc/defaultdomain."
+ exit 0
+fi
+
+case "$1" in
+'start')
+ yp_start
+ ;;
+'stop')
+ yp_stop
+ ;;
+'restart')
+ yp_stop
+ yp_start
+ ;;
+*)
+ echo "usage $0 start|stop|restart"
+esac
+
# # Done setting up NIS.