summaryrefslogtreecommitdiffstats
path: root/source/n/yptools/rc.yp
blob: a1a9974644f79b9686e90de83e9955e4e35d4793 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/sh
# /etc/rc.d/rc.yp
#
# Start NIS (Network Information Service).  NIS provides network-wide
# distribution of hostname, username, and other information databases.
# After configuring NIS, you will either need to uncomment the parts
# of this script that you want to run, or tweak /etc/default/yp
#
# NOTE: for detailed information about setting up NIS, see the
# documentation in /usr/doc/yp-tools, /usr/doc/ypbind,
# /usr/doc/ypserv, and /usr/doc/Linux-HOWTOs/NIS-HOWTO.

# Set non-zero to enable yp client functions
# Can also be used in /etc/default/yp to override this default:
YP_CLIENT_ENABLE=1

# Set non-zero to enable yp server functions
# Can also be used in /etc/default/yp to override this default:
YP_SERVER_ENABLE=0

# If YP_SERVER_ENABLE is set, a non-zero YP_XFRD_ENABLE setting will
# enable ypxfrd.
# Can also be used in /etc/default/yp to override this default:
YP_XFRD_ENABLE=0

PID_PATH=/var/run

# Source options. Doing this here makes it possible
# to override YP_*_ENABLE set above
if [ -r /etc/default/yp ]; then
  . /etc/default/yp
fi

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 $YPSERV_OPTS"
      /usr/sbin/ypserv $YPSERV_OPTS
    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.

    if [ -x /usr/sbin/rpc.yppasswdd ]; then
      echo "Starting NIS master password server:  /usr/sbin/rpc.yppasswdd $YPPASSWDD_OPTS"
      /usr/sbin/rpc.yppasswdd $YPPASSWDD_OPTS
    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 $YPXFRD_OPTS"
        /usr/sbin/rpc.ypxfrd $YPXFRD_OPTS
      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.
    # Your NIS server might also be a client.
    if [ -d /var/yp ]; then
      if [ -z "$YPBIND_OPTS" ]; then
        YPBIND_OPTS="-broadcast"
      fi
      echo "Starting NIS services:  /usr/sbin/ypbind $YPBIND_OPTS"
      /usr/sbin/ypbind $YPBIND_OPTS
    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 ] && [ -x /bin/nisdomainname ]; then
  if ! /bin/nisdomainname 1>/dev/null 2>/dev/null ; 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.