diff options
Diffstat (limited to 'source/n/yptools/rc.yp')
-rw-r--r-- | source/n/yptools/rc.yp | 153 |
1 files changed, 109 insertions, 44 deletions
diff --git a/source/n/yptools/rc.yp b/source/n/yptools/rc.yp index 4c3b8dec..eda9634e 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. |