Home | History | Annotate | Line # | Download | only in rc.d
sysdb revision 1.17
      1 #!/bin/sh
      2 #
      3 # $NetBSD: sysdb,v 1.17 2007/05/10 17:45:50 christos Exp $
      4 #
      5 
      6 # PROVIDE: sysdb
      7 # REQUIRE: mountcritremote
      8 # BEFORE:  DAEMON
      9 
     10 $_rc_subr_loaded . /etc/rc.subr
     11 
     12 name="sysdb"
     13 start_cmd="sysdb_start"
     14 stop_cmd=":"
     15 extra_commands="devdb utmp services netgroup password"
     16 devdb_cmd="build_devdb"
     17 utmp_cmd="build_utmp"
     18 services_cmd="build_services"
     19 netgroup_cmd="build_netgroup"
     20 password_cmd="build_password"
     21 echo=:
     22 
     23 sysdb_start()
     24 {
     25 	echo -n "Building databases:"
     26 	echo=echo
     27 	comma=" "
     28 	$devdb_cmd
     29 	$utmp_cmd
     30 	$services_cmd
     31 	$netgroup_cmd
     32 	$password_cmd
     33 	echo " done"
     34 }
     35 
     36 check_file()
     37 {
     38 	local src="$1"
     39 	local db="$2"
     40 	shift 2
     41 	if [ \( ! -f "$db" \) -o \( "$src" -nt "$db" \) ]; then
     42 		$echo -n "$comma$(basename "$src")"
     43 		comma=", "
     44 		"$@"
     45 	fi
     46 }
     47 
     48 build_services()
     49 {
     50 	check_file /etc/services /var/db/services.db services_mkdb -q
     51 }
     52 
     53 build_netgroup()
     54 {
     55 	check_file /etc/netgroup /var/db/netgroup.db netgroup_mkdb
     56 }
     57 
     58 build_devdb()
     59 {
     60 	check_file /dev /var/run/dev.db dev_mkdb
     61 }
     62 
     63 build_password()
     64 {
     65 	local p=/etc/master.passwd
     66 	check_file $p /etc/spwd.db pwd_mkdb $p
     67 }
     68 
     69 build_utmp()
     70 {
     71 	#	Re-create /var/run/utmp and /var/run/utmpx, which are
     72 	#	deleted by mountcritlocal but can't be recreated by it
     73 	#	because install and chown may not be available then
     74 	#	(possibly no /usr).
     75 	#
     76 	local i
     77 	for i in "" x; do
     78 		if [ ! -f /var/run/utmp$i ]; then
     79 			$echo -n "${comma}utmp$i"
     80 			comma=", "
     81 			install -c -m 664 -g utmp /dev/null /var/run/utmp$i
     82 		fi
     83 	done
     84 }
     85 
     86 load_rc_config $name
     87 run_rc_command "$1"
     88