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 12name="sysdb" 13start_cmd="sysdb_start" 14stop_cmd=":" 15extra_commands="devdb utmp services netgroup password" 16devdb_cmd="build_devdb" 17utmp_cmd="build_utmp" 18services_cmd="build_services" 19netgroup_cmd="build_netgroup" 20password_cmd="build_password" 21echo=: 22 23sysdb_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 36check_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 48build_services() 49{ 50 check_file /etc/services /var/db/services.db services_mkdb -q 51} 52 53build_netgroup() 54{ 55 check_file /etc/netgroup /var/db/netgroup.db netgroup_mkdb 56} 57 58build_devdb() 59{ 60 check_file /dev /var/run/dev.db dev_mkdb 61} 62 63build_password() 64{ 65 local p=/etc/master.passwd 66 check_file $p /etc/spwd.db pwd_mkdb $p 67} 68 69build_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 86load_rc_config $name 87run_rc_command "$1" 88