# You will need to set the dependencies in the nfsmount script to match
# the network configuration tools you are using. This should be done in
# this file by following the examples below, and not by changing the
# service script itself.  See /etc/conf.d/netmount for more examples.
#
# This is a safe default.
rc_after="net"
