#!/bin/sh
#
# rc.inet2	This shell script boots up the entire network system.
#		Note, that when this script is used to also fire
#		up any important remote NFS disks (like the /usr
#		directory), care must be taken to actually
#		have all the needed binaries online _now_ ...
#
#               Uncomment or comment out sections depending on which
#               services your site requires.
#
# Author:	Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
# Modified for Slackware by Patrick Volkerding <volkerdi@slackware.com>


# At this point, we are ready to talk to The World...


# Mount remote (NFS) filesystems:
if cat /etc/fstab | grep -v '^#' | grep -w nfs 1> /dev/null 2> /dev/null ; then
  # Start the RPC portmapper if we find NFS volumes defined in /etc/fstab,
  # since it will need to be running in order to mount them.  If portmap
  # is not running, attempting to mount an NFS partition will cause mount
  # to hang.  Keep this in mind if you plan to mount unlisted partitions...
  # It has also been reported that in many applications rpc.lockd and rpc.statd
  # must be started as well, if NFS is to work reliably.  Therefore, if we see
  # NFS partition in fstab and rc.portmap is executable, we will also start lockd
  # and statd too.
  if [ -x /etc/rc.d/rc.portmap ]; then
    . /etc/rc.d/rc.portmap start
    if [ -x /usr/sbin/rpc.lockd ]; then
      echo "Starting kernel lockd processes:  /usr/sbin/rpc.lockd"
      /usr/sbin/rpc.lockd
    fi
    if [ -x /usr/sbin/rpc.statd ]; then
      echo "Start NSM (Network Status Monitor) RPC protocol:  /usr/sbin/rpc.statd"
      /usr/sbin/rpc.statd
    fi
  else
    # Warn about a possible NFS problem.  It's also possible to mount NFS partitions
    # without rpc.portmap by using '-o nolock' (not a good idea in most cases).
    echo "WARNING:  NFS partitions found in /etc/fstab, but /etc/rc.d/rc.portmap is"
    echo "          not executable.  If you do not run portmap, rpc.lockd, and"
    echo "          rpc.statd, NFS partitions will not mount properly.  To start"
    echo "          rpc.portmap at boot, change the permissions on"
    echo "          /etc/rc.d/rc.portmap:  chmod 755 /etc/rc.d/rc.portmap"
    sleep 10
  fi
  echo "Mounting remote (NFS) file systems:  /sbin/mount -a -t nfs"
  /sbin/mount -a -t nfs      	 # This may be our /usr runtime!
  # Show the mounted volumes:
  /sbin/mount -v -t nfs
fi

# Load the RPC portmapper if /etc/rc.d/rc.portmap is executable.
# This might be needed to mount NFS partitions that are not listed in /etc/fstab.
# For more reliability, you might also want to run rpc.lockd and rpc.statd, too.
if [ -x /etc/rc.d/rc.portmap ]; then
  . /etc/rc.d/rc.portmap start
fi

# Mount remote (SMB) filesystems:
if cat /etc/fstab | grep -v '^#' | grep -w smbfs 1> /dev/null 2> /dev/null ; then
  echo "Mounting remote (SMB) file systems:  /sbin/mount -a -t smbfs"
  /sbin/mount -a -t smbfs
  # Show the mounted volumes:
  /sbin/mount -v -t smbfs
fi

# Start the system logger if it is not already running (maybe because /usr
# is on a network partition).
if [ -x /etc/rc.d/rc.syslog -a -d /var/log -a ! -r /var/run/syslogd.pid ]; then
  . /etc/rc.d/rc.syslog start
fi

# If there is a firewall script, run it before enabling packet forwarding.
# See the HOWTOs on http://www.netfilter.org/ for documentation on
# setting up a firewall or NAT on Linux.  In some cases this might need to
# be moved past the section below dealing with IP packet forwarding.
if [ -x /etc/rc.d/rc.firewall ]; then
  /etc/rc.d/rc.firewall start
fi

# Turn on IPv4 packet forwarding support.
if [ -x /etc/rc.d/rc.ip_forward ]; then
  . /etc/rc.d/rc.ip_forward start
fi

# Start the inetd server:
if [ -x /etc/rc.d/rc.inetd ]; then
  /etc/rc.d/rc.inetd start
fi

# Start the OpenSSH SSH daemon:
if [ -x /etc/rc.d/rc.sshd ]; then
  echo "Starting OpenSSH SSH daemon:  /usr/sbin/sshd"
  /etc/rc.d/rc.sshd start
fi

# Start the BIND name server daemon:
if [ -x /etc/rc.d/rc.bind ]; then
  /etc/rc.d/rc.bind start
fi

# Start NIS (the Network Information Service):
if [ -x /etc/rc.d/rc.yp ]; then
  . /etc/rc.d/rc.yp start
fi

# Start the NFS server.   Note that for this to work correctly, you'll
# need to load the knfsd module for kernel NFS server support.
# You'll also need to set up some shares in /etc/exports, and be sure
# that /etc/rc.d/rc.portmap is executable.
# Starting the NFS server:
if [ -x /etc/rc.d/rc.nfsd ]; then
  /etc/rc.d/rc.nfsd start
fi

# Stuff you won't need follows.  ;-)

# # Start the network routing daemon:
# if [ -x /usr/sbin/routed ]; then
#   echo "Starting network routing daemon:  /usr/sbin/routed"
#   /usr/sbin/routed -g -s
# fi

# # Start the system status server:
# if [ -x /usr/sbin/rwhod ]; then
#   echo "Starting system status server:  /usr/sbin/rwhod"
#   /usr/sbin/rwhod
# fi

#  # Fire up the PC-NFS daemon(s).  This is a primarily obsolete system, and may
#  # not be very secure.  It's not at all needed for normal NFS server support.
#  # You probably should not run this.
#  if [ -x /usr/sbin/rpc.pcnfsd ]; then
#    echo "Starting PC-NFS daemons:  /usr/sbin/rpc.pcnfsd /usr/sbin/rpc.bwnfsd"
#    /usr/sbin/rpc.pcnfsd /var/spool/lpd
#  fi
#  if [ -x /usr/sbin/rpc.bwnfsd ]; then
#    /usr/sbin/rpc.bwnfsd /var/spool/lpd
#  fi

