1*18db1430Sderaadt# $OpenBSD: rc,v 1.184 2001/09/21 05:51:13 deraadt Exp $ 2df930be7Sderaadt 3df930be7Sderaadt# System startup script run by init on autoboot 4df930be7Sderaadt# or after single-user. 5df930be7Sderaadt# Output and error are redirected to console by init, 6df930be7Sderaadt# and the console is the controlling terminal. 7df930be7Sderaadt 85420764bSmillert# Subroutines (have to come first). 95420764bSmillert 105420764bSmillert# Strip comments (and leading/trailing whitespace if IFS is set) 115420764bSmillert# from a file and spew to stdout 125420764bSmillertstripcom() { 135420764bSmillert local _file="$1" 145420764bSmillert local _line 155420764bSmillert 165420764bSmillert { 175420764bSmillert while read _line ; do 185420764bSmillert _line=${_line%%#*} # strip comments 195420764bSmillert test -z "$_line" && continue 205420764bSmillert echo $_line 215420764bSmillert done 225420764bSmillert } < $_file 235420764bSmillert} 245420764bSmillert 255420764bSmillert# End subroutines 265420764bSmillert 27df930be7Sderaadtstty status '^T' 28df930be7Sderaadt 29df930be7Sderaadt# Set shell to ignore SIGINT (2), but not children; 30df930be7Sderaadt# shell catches SIGQUIT (3) and returns to single user after fsck. 31df930be7Sderaadttrap : 2 32df930be7Sderaadttrap : 3 # shouldn't be needed 33df930be7Sderaadt 34df930be7SderaadtHOME=/; export HOME 35df930be7SderaadtPATH=/sbin:/bin:/usr/sbin:/usr/bin 36df930be7Sderaadtexport PATH 37df930be7Sderaadt 3875a54d2eSderaadtif [ $1x = shutdownx ]; then 3975a54d2eSderaadt dd if=/dev/urandom of=/var/db/host.random bs=1024 count=64 >/dev/null 2>&1 4075a54d2eSderaadt chmod 600 /var/db/host.random >/dev/null 2>&1 4175a54d2eSderaadt if [ $? -eq 0 -a -f /etc/rc.shutdown ]; then 4275a54d2eSderaadt echo /etc/rc.shutdown in progress... 4375a54d2eSderaadt . /etc/rc.shutdown 4475a54d2eSderaadt echo /etc/rc.shutdown complete. 4575a54d2eSderaadt if [ "X${powerdown}" = X"YES" ]; then 4675a54d2eSderaadt exit 2 4775a54d2eSderaadt fi 4875a54d2eSderaadt else 4975a54d2eSderaadt echo single user: not running /etc/rc.shutdown 5075a54d2eSderaadt fi 5175a54d2eSderaadt exit 0 5275a54d2eSderaadtfi 5375a54d2eSderaadt 54df930be7Sderaadt# Configure ccd devices. 558b7444a6Sderaadtif [ -f /etc/ccd.conf ]; then 56df930be7Sderaadt ccdconfig -C 57df930be7Sderaadtfi 58df930be7Sderaadt 59c5858a2aSjakob# Configure raid devices. 60c5858a2aSjakobfor dev in 0 1 2 3; do 61c5858a2aSjakob if [ -f /etc/raid$dev.conf ]; then 62c5858a2aSjakob raidctl -c /etc/raid$dev.conf raid$dev 63ea074444Sangelos raidctl -v -P raid$dev 64c5858a2aSjakob fi 65c5858a2aSjakobdone 66c5858a2aSjakob 67638be0f1Smiodswapctl -A -t blk 68920abb1bSderaadt 698b7444a6Sderaadtif [ -e /fastboot ]; then 70df930be7Sderaadt echo "Fast boot: skipping disk checks." 718b7444a6Sderaadtelif [ $1x = autobootx ]; then 72df930be7Sderaadt echo "Automatic boot in progress: starting file system checks." 73b39bbe87Smillert fsck -p 74df930be7Sderaadt case $? in 75df930be7Sderaadt 0) 76df930be7Sderaadt ;; 77df930be7Sderaadt 2) 78df930be7Sderaadt exit 1 79df930be7Sderaadt ;; 80df930be7Sderaadt 4) 81df930be7Sderaadt echo "Rebooting..." 82df930be7Sderaadt reboot 83df930be7Sderaadt echo "Reboot failed; help!" 84df930be7Sderaadt exit 1 85df930be7Sderaadt ;; 86df930be7Sderaadt 8) 87df930be7Sderaadt echo "Automatic file system check failed; help!" 88df930be7Sderaadt exit 1 89df930be7Sderaadt ;; 90df930be7Sderaadt 12) 91df930be7Sderaadt echo "Boot interrupted." 92df930be7Sderaadt exit 1 93df930be7Sderaadt ;; 94df930be7Sderaadt 130) 95df930be7Sderaadt # interrupt before catcher installed 96df930be7Sderaadt exit 1 97df930be7Sderaadt ;; 98df930be7Sderaadt *) 99df930be7Sderaadt echo "Unknown error; help!" 100df930be7Sderaadt exit 1 101df930be7Sderaadt ;; 102df930be7Sderaadt esac 103df930be7Sderaadtfi 104df930be7Sderaadt 105df930be7Sderaadttrap "echo 'Boot interrupted.'; exit 1" 3 106df930be7Sderaadt 107df930be7Sderaadtumount -a >/dev/null 2>&1 108df930be7Sderaadtmount -a -t nonfs 1094515901dSniklasmount -uw / # root on nfs requires this, others aren't hurt 110df930be7Sderaadtrm -f /fastboot # XXX (root now writeable) 111df930be7Sderaadt 112d3ae8907Sderaadt# pick up option configuration 113d3ae8907Sderaadt. /etc/rc.conf 114d3ae8907Sderaadt 115df930be7Sderaadt# set flags on ttys. (do early, in case they use tty for SLIP in netstart) 116df930be7Sderaadtecho 'setting tty flags' 117df930be7Sderaadtttyflags -a 118df930be7Sderaadt 1191097c023Skjellif [ "X$pf" != X"NO" ]; then 120*18db1430Sderaadt RULES="block in all\nblock out all" 121*18db1430Sderaadt case `sysctl vfs.mounts.nfs` in 122*18db1430Sderaadt *[1-9]*) 123*18db1430Sderaadt # don't kill NFS 124*18db1430Sderaadt RULES="$RULES\npass in proto udp from any port { 111, 2049 } to any" 125*18db1430Sderaadt RULES="$RULES\npass out proto udp from any to any port { 111, 2049 }" 126*18db1430Sderaadt ;; 127*18db1430Sderaadt esac 128*18db1430Sderaadt echo $RULES | pfctl -R - -e 1291097c023Skjellfi 1301097c023Skjell 131f753b29fSderaadtif [ -f /etc/sysctl.conf ]; then 132f753b29fSderaadt( 133f753b29fSderaadt # delete comments and blank lines 1345420764bSmillert set -- `stripcom /etc/sysctl.conf` 135f753b29fSderaadt while [ $# -ge 1 ] ; do 136f753b29fSderaadt sysctl -w $1 137c6fe6b90Smillert shift 138f753b29fSderaadt done 139f753b29fSderaadt) 140f753b29fSderaadtfi 141f753b29fSderaadt 142df930be7Sderaadt# set hostname, turn on network 143df930be7Sderaadtecho 'starting network' 144df930be7Sderaadt. /etc/netstart 145df930be7Sderaadt 1461097c023Skjellif [ "X$pf" != X"NO" ]; then 1471097c023Skjell if [ -f ${nat_rules} ]; then 1481097c023Skjell pfctl -N ${nat_rules} 1491097c023Skjell fi 1501097c023Skjell if [ -f ${pf_rules} ]; then 1511097c023Skjell pfctl -R ${pf_rules} 1521097c023Skjell fi 1531097c023Skjellfi 1541097c023Skjell 155df930be7Sderaadtmount /usr >/dev/null 2>&1 156df930be7Sderaadtmount /var >/dev/null 2>&1 157df930be7Sderaadt 158f26db62bSderaadt# if there's no /var/db/host.random, make one through /dev/urandom 159f26db62bSderaadtif [ ! -f /var/db/host.random ]; then 160f26db62bSderaadt dd if=/dev/urandom of=/var/db/host.random bs=1024 count=64 \ 161f26db62bSderaadt >/dev/null 2>&1 162f26db62bSderaadt chmod 600 /var/db/host.random >/dev/null 2>&1 163f26db62bSderaadtelse 164f26db62bSderaadt dd if=/var/db/host.random of=/dev/urandom bs=1024 count=64 \ 165f26db62bSderaadt > /dev/null 2>&1 166f26db62bSderaadt dd if=/var/db/host.random of=/dev/arandom bs=1024 count=64 \ 167f26db62bSderaadt > /dev/null 2>&1 168f26db62bSderaadtfi 169f26db62bSderaadt 17074af54b4Sderaadt# reset seed file, so that if a shutdown-less reboot occurs, 17174af54b4Sderaadt# the next seed is not a repeat 17274af54b4Sderaadtdd if=/dev/urandom of=/var/db/host.random bs=1024 count=64 \ 17374af54b4Sderaadt > /dev/null 2>&1 17474af54b4Sderaadt 175f0550eb3Sderaadt# clean up left-over files 176f0550eb3Sderaadtrm -f /etc/nologin 177f0550eb3Sderaadtrm -f /var/spool/lock/LCK.* 178f0550eb3Sderaadtrm -f /var/spool/uucp/STST/* 179f0550eb3Sderaadt(cd /var/run && { rm -rf -- *; install -c -m 664 -g utmp /dev/null utmp; }) 180f0550eb3Sderaadt 1816c0a0b4aSalex# save a copy of the boot messages 1826c0a0b4aSalexdmesg >/var/run/dmesg.boot 1836c0a0b4aSalex 1843ca632e7Sderaadtecho 'starting system logger' 1853ca632e7Sderaadtrm -f /dev/log 186de324a5dSmillertif [ "X${named_flags}" != X"NO" -a "X${named_chroot}" != "X" ]; then 187b025dbf1Smillert rm -f ${named_chroot}/dev/log 188b025dbf1Smillert syslogd_flags="${syslogd_flags} -a ${named_chroot}/dev/log" 189b025dbf1Smillertfi 1901dabce80Smarcsyslogd ${syslogd_flags} 1913ca632e7Sderaadt 192*18db1430Sderaadtif [ "X$pf" != X"NO" ]; then 193*18db1430Sderaadt ifconfig pflog0 up 194*18db1430Sderaadt pflogd ${pflogd_flags} 195*18db1430Sderaadtfi 196*18db1430Sderaadt 197b025dbf1Smillert# $named_flags, $named_user, and $named_chroot are imported from /etc/rc.conf; 198759e03b2Sderaadt# if $named_flags != NO, named is run. 199759e03b2Sderaadtif [ "X${named_flags}" != X"NO" ]; then 200b025dbf1Smillert if [ "X${named_user}" != "X" -a "X${named_user}" != X"root" ]; then 201b025dbf1Smillert named_flags="-u ${named_user} ${named_flags}" 202b025dbf1Smillert fi 2035bbdedf9Smillert if [ "X${named_chroot}" != "X" ]; then 2041b0bb4feSmillert if [ ! -c "${named_chroot}/dev/null" ]; then 2051b0bb4feSmillert ( cd /dev ; pax -rw -pe null ${named_chroot}/dev ) 2061b0bb4feSmillert fi 207d6f17fddSmillert if [ -f /etc/localtime -a -d "${named_chroot}/etc" ]; then 208d6f17fddSmillert cmp -s /etc/localtime "${named_chroot}/etc/localtime" \ 209d6f17fddSmillert || cp -p /etc/localtime "${named_chroot}/etc/localtime" 210d6f17fddSmillert fi 211b025dbf1Smillert named_flags="-t ${named_chroot} ${named_flags}" 212b025dbf1Smillert fi 2133ca632e7Sderaadt echo 'starting named'; named $named_flags 214759e03b2Sderaadtfi 215759e03b2Sderaadt 216edae963cSderaadt# $photurisd_flags is imported from /etc/rc.conf; 2173edbf32cSkstailey# If $photurisd_flags == NO or /etc/photuris/photuris.conf doesn't exist, then 218a5aa1706Sprovos# photurisd isn't run. 2193edbf32cSkstaileyif [ "X${photurisd_flags}" != X"NO" -a -e /etc/photuris/photuris.conf ]; then 220a5aa1706Sprovos echo 'starting photurisd'; photurisd ${photurisd_flags} 221a5aa1706Sprovosfi 222a5aa1706Sprovos 223096ed560Sderaadt# $isakmpd_flags is imported from /etc/rc.conf; 2244464acccSderaadt# If $isakmpd_flags == NO or /etc/isakmpd/isakmpd.conf doesn't exist, then 225096ed560Sderaadt# isakmpd isn't run. 2264464acccSderaadtif [ "X${isakmpd_flags}" != X"NO" -a -e /etc/isakmpd/isakmpd.conf ]; then 227096ed560Sderaadt echo 'starting isakmpd'; isakmpd ${isakmpd_flags} 228096ed560Sderaadtfi 229096ed560Sderaadt 230df930be7Sderaadtecho -n 'starting rpc daemons:' 2318e74b1f0Smillert 232edae963cSderaadt# $portmap is imported from /etc/rc.conf; 2338e74b1f0Smillert# if $portmap == YES, the portmapper is started. 2348e74b1f0Smillertif [ X"${portmap}" = X"YES" ]; then 235df930be7Sderaadt echo -n ' portmap'; portmap 236423a3640Sderaadtfi 237df930be7Sderaadt 238408c7b16Sderaadtif [ -d /var/yp/binding -a X`domainname` != X ]; then 2392d5ee5bcSderaadt if [ -d /var/yp/`domainname` ]; then 240b25099beSderaadt # yp server capabilities needed... 241d6518a3fSniklas echo -n ' ypserv'; ypserv ${ypserv_flags} 242d52cd61fSderaadt #echo -n ' ypxfrd'; ypxfrd 2437f2d1b00Sderaadt fi 244b25099beSderaadt 2457f2d1b00Sderaadt echo -n ' ypbind'; ypbind 2467f2d1b00Sderaadt 2477f2d1b00Sderaadt if [ -d /var/yp/`domainname` ]; then 248b25099beSderaadt # if we are the master server, run rpc.yppasswdd 249b25099beSderaadt _host1=`ypwhich -m passwd 2> /dev/null` 250b25099beSderaadt _host2=`hostname` 251fd917f6eSderaadt if [ `grep '^lookup' /etc/resolv.conf | grep yp | wc -c` -ne 0 ]; then 252b25099beSderaadt _host1=`ypmatch $_host1 hosts | cut -d' ' -f2` 253b25099beSderaadt _host2=`ypmatch $_host2 hosts | cut -d' ' -f2 | head -1` 254b25099beSderaadt else 255b25099beSderaadt _host1=`nslookup $_host1 | grep '^Name: ' | \ 256b25099beSderaadt sed -e 's/^Name: //'` 257b25099beSderaadt _host2=`nslookup $_host2 | grep '^Name: ' | \ 258b25099beSderaadt sed -e 's/^Name: //'` 259b25099beSderaadt fi 260234efc0eSderaadt if [ "$_host2" = "$_host1" ]; then 26113f82310Sniklas echo -n ' rpc.yppasswdd' 26213f82310Sniklas rpc.yppasswdd ${yppasswdd_flags} 2632d5ee5bcSderaadt fi 2642d5ee5bcSderaadt fi 265df930be7Sderaadtfi 266df930be7Sderaadt 267edae963cSderaadt# $nfs_server is imported from /etc/rc.conf; 268df930be7Sderaadt# if $nfs_server == YES, the machine is setup for being an nfs server 269a975dbe5Smillertif [ X${nfs_server} = X"YES" -a -s /etc/exports -a \ 270d54d80fbSderaadt `sed -e '/^#/d' < /etc/exports | wc -l` -ne 0 ]; then 271df930be7Sderaadt rm -f /var/db/mountdtab 272df930be7Sderaadt echo -n > /var/db/mountdtab 273df930be7Sderaadt echo -n ' mountd'; mountd 274e6d41a0aSniklas echo -n ' nfsd'; nfsd ${nfsd_flags} 275e6d41a0aSniklas if [ X${lockd} = X"YES" ]; then 276e6d41a0aSniklas echo -n ' rpc.lockd'; rpc.lockd 277e6d41a0aSniklas fi 278df930be7Sderaadtfi 279df930be7Sderaadt 2805bf306d4Sderaadtif [ X${amd} = X"YES" -a -e ${amd_master} ]; then 281df930be7Sderaadt echo -n ' amd' 282d988480bSderaadt (cd /etc/amd; amd -l syslog -x error,noinfo,nostats -p \ 283d988480bSderaadt -a ${amd_dir} `cat ${amd_master}` > /var/run/amd.pid ) 284df930be7Sderaadtfi 285df930be7Sderaadt 286cac4892eSmatt# run rdate before timed 2875fbe69b1Smillertif [ X"${rdate_flags}" != X"NO" ]; then 288cac4892eSmatt echo -n ' rdate'; rdate -s ${rdate_flags} 289cac4892eSmattfi 290cac4892eSmatt 291edae963cSderaadt# $timed_flags is imported from /etc/rc.conf; 292df930be7Sderaadt# if $timed_flags == NO, timed isn't run. 293df930be7Sderaadtif [ "X${timed_flags}" != X"NO" ]; then 2943ca632e7Sderaadt echo -n ' timed'; timed $timed_flags 295df930be7Sderaadtfi 296df930be7Sderaadtecho '.' 297df930be7Sderaadt 2983ca632e7Sderaadtmount -a -t nfs 2993ca632e7Sderaadt 300638be0f1Smiodswapctl -A -t noblk 301638be0f1Smiod 302df930be7Sderaadt# /var/crash should be a directory or a symbolic link 303df930be7Sderaadt# to the crash directory if core dumps are to be saved. 304df930be7Sderaadtif [ -d /var/crash ]; then 305df930be7Sderaadt savecore /var/crash 306df930be7Sderaadtfi 307df930be7Sderaadt 3088b757a89Sartif [ "X${afs}" = X"YES" -a -c ${afs_device} -a -d ${afs_mount_point} ]; then 3098b757a89Sart echo -n 'mounting afs:' 310aedc5557Sart mount -t xfs ${afs_device} ${afs_mount_point} 3118b757a89Sart /usr/libexec/afsd ${afsd_flags} -d ${afs_device} 3128b757a89Sart echo ' done.' 3138b757a89Sartfi 3148b757a89Sart 31536a647e7Sdownsjif [ "X${check_quotas}" = X"YES" ]; then 316df930be7Sderaadt echo -n 'checking quotas:' 317df930be7Sderaadt quotacheck -a 318df930be7Sderaadt echo ' done.' 319df930be7Sderaadt quotaon -a 32036a647e7Sdownsjfi 321df930be7Sderaadt 322df930be7Sderaadt# build ps databases 323fb69824dSderaadtecho -n 'building ps databases:' 324fb69824dSderaadtecho -n " kvm" 325004fa836Smillertkvm_mkdb 326fb69824dSderaadtecho -n " dev" 327df930be7Sderaadtdev_mkdb 328fb69824dSderaadtecho "." 329df930be7Sderaadt 330e860cdbaSderaadtchmod 666 /dev/tty[pqrstuvwxyzPQRST]* 331e860cdbaSderaadtchown root.wheel /dev/tty[pqrstuvwxyzPQRST]* 332df930be7Sderaadt 333df930be7Sderaadt# check the password temp/lock file 3348b7444a6Sderaadtif [ -f /etc/ptmp ]; then 335df930be7Sderaadt logger -s -p auth.err \ 336df930be7Sderaadt 'password file may be incorrect -- /etc/ptmp exists' 337df930be7Sderaadtfi 338df930be7Sderaadt 339e65724e6Smillertecho clearing /tmp 340e65724e6Smillert 341e65724e6Smillert# prune quickly with one rm, then use find to clean up /tmp/[lq]* 342e65724e6Smillert# (not needed with mfs /tmp, but doesn't hurt there...) 343e65724e6Smillert(cd /tmp && rm -rf [a-km-pr-zA-Z]* && 344e65724e6Smillert find . ! -name . ! -name lost+found ! -name quota.user \ 3458b0a8653Smillert ! -name quota.group -execdir rm -rf -- {} \; -type d -prune) 346e65724e6Smillert 3472f33850bSderaadt[ -f /etc/rc.securelevel ] && . /etc/rc.securelevel 34841406ee4Sderaadtif [ X${securelevel} != X"" ]; then 349e31a5b5aSmillert echo -n 'setting kernel security level: ' 35041406ee4Sderaadt sysctl -w kern.securelevel=${securelevel} 35141406ee4Sderaadtfi 35241406ee4Sderaadt 353dc279d04Sderaadt# patch /etc/motd 354dc279d04Sderaadtif [ ! -f /etc/motd ]; then 355dc279d04Sderaadt install -c -o root -g wheel -m 664 /dev/null /etc/motd 356dc279d04Sderaadtfi 357d243dabcSmillertT=`mktemp /tmp/_motd.XXXXXXXXXX` 358499eb670Smillertif [ $? -eq 0 ]; then 359dc279d04Sderaadt sysctl -n kern.version | sed 1q > $T 360dc279d04Sderaadt echo "" >> $T 361dc279d04Sderaadt sed '1,/^$/d' < /etc/motd >> $T 362dc279d04Sderaadt cmp -s $T /etc/motd || cp $T /etc/motd 363dc279d04Sderaadt rm -f $T 3645b45527eSmillertfi 365dc279d04Sderaadt 366311b7760Smillertif [ -x /usr/libexec/vi.recover ]; then 367311b7760Smillert echo 'preserving editor files'; /usr/libexec/vi.recover 368df930be7Sderaadtfi 369df930be7Sderaadt 370df930be7Sderaadtif [ -f /var/account/acct ]; then 371df930be7Sderaadt echo 'turning on accounting'; accton /var/account/acct 372df930be7Sderaadtfi 373df930be7Sderaadt 3747e42516dSderaadtif [ -f /sbin/ldconfig ]; then 3757e42516dSderaadt echo 'creating runtime link editor directory cache.' 3767e42516dSderaadt if [ -d /usr/local/lib ]; then 3775881fc76Stodd shlib_dirs="/usr/local/lib $shlib_dirs" 3787e42516dSderaadt fi 3797e42516dSderaadt if [ -d /usr/X11R6/lib ]; then 3805881fc76Stodd shlib_dirs="/usr/X11R6/lib $shlib_dirs" 3817e42516dSderaadt fi 3827e42516dSderaadt ldconfig $shlib_dirs 3837e42516dSderaadtfi 3847e42516dSderaadt 3853d7b45bcSderaadtif [ ! -f /etc/ssh_host_dsa_key ]; then 38634c0b73eSderaadt echo -n "ssh-keygen: generating new DSA host key... " 387b05748d5Sderaadt if /usr/bin/ssh-keygen -q -t dsa -f /etc/ssh_host_dsa_key -N ''; then 388b05748d5Sderaadt echo done. 389b05748d5Sderaadt else 390b05748d5Sderaadt echo failed. 391b05748d5Sderaadt fi 392b05748d5Sderaadtfi 393b05748d5Sderaadtif [ ! -f /etc/ssh_host_rsa_key ]; then 394b05748d5Sderaadt echo -n "ssh-keygen: generating new RSA host key... " 395b05748d5Sderaadt if /usr/bin/ssh-keygen -q -t rsa -f /etc/ssh_host_rsa_key -N ''; then 39634c0b73eSderaadt echo done. 39734c0b73eSderaadt else 39834c0b73eSderaadt echo failed. 39934c0b73eSderaadt fi 40034c0b73eSderaadtfi 4013d7b45bcSderaadtif [ ! -f /etc/ssh_host_key ]; then 40234c0b73eSderaadt echo -n "ssh-keygen: generating new RSA host key... " 403b05748d5Sderaadt if /usr/bin/ssh-keygen -q -t rsa1 -f /etc/ssh_host_key -N ''; then 4046d6e0cf6Sderaadt echo done. 4056d6e0cf6Sderaadt else 4066d6e0cf6Sderaadt echo failed. 4076d6e0cf6Sderaadt fi 4086d6e0cf6Sderaadtfi 4096d6e0cf6Sderaadt 410df930be7Sderaadtecho -n starting network daemons: 411df930be7Sderaadt 412edae963cSderaadt# $gated and $routed_flags are imported from /etc/rc.conf. 413df930be7Sderaadt# If $gated == YES, gated is used; otherwise routed. 414df930be7Sderaadt# If $routed_flags == NO, routed isn't run. 415a975dbe5Smillertif [ X${gated} = X"YES" -a -e /etc/gated.conf ]; then 416b7af990fSbrad echo -n ' gated'; /usr/local/sbin/gated $gated_flags 417df930be7Sderaadtelif [ "X${routed_flags}" != X"NO" ]; then 418df930be7Sderaadt echo -n ' routed'; routed $routed_flags 419df930be7Sderaadtfi 420df930be7Sderaadt 421edae963cSderaadt# $mrouted_flags is imported from /etc/rc.conf; 42269b30726Sderaadt# If $mrouted_flags == NO, then mrouted isn't run. 42369b30726Sderaadtif [ "X${mrouted_flags}" != X"NO" ]; then 42469b30726Sderaadt echo -n ' mrouted'; mrouted $mrouted_flags 42569b30726Sderaadtfi 42669b30726Sderaadt 427925a37d7Sderaadt# $altqd_flags is imported from /etc/rc.conf; 428925a37d7Sderaadt# If $altqd_flags == NO, then altqd isn't run. 429925a37d7Sderaadtif [ "X${altqd_flags}" != X"NO" ]; then 430925a37d7Sderaadt echo -n ' altqd'; altqd $altqd_flags 431925a37d7Sderaadtfi 432925a37d7Sderaadt 43330a2245dSform# $dhcpd_flags is imported from /etc/rc.conf 43430a2245dSform# If $dhcpd_flags == NO or /etc/dhcpd.conf doesn't exist, then dhcpd isn't run. 43530a2245dSformif [ "X${dhcpd_flags}" != X"NO" -a -f /etc/dhcpd.conf ]; then 43630a2245dSform touch /var/db/dhcpd.leases 43730a2245dSform if [ -f /etc/dhcpd.interfaces ]; then 438d54d80fbSderaadt dhcpd_ifs=`awk -F\# '{ print $1; }' < /etc/dhcpd.interfaces` 43930a2245dSform fi 44030a2245dSform echo -n ' dhcpd'; /usr/sbin/dhcpd ${dhcpd_flags} ${dhcpd_ifs} 44130a2245dSformfi 44230a2245dSform 44333a0f254Sitojunif ifconfig lo0 inet6 >/dev/null 2>&1; then 44433a0f254Sitojun fw=`sysctl -n net.inet6.ip6.forwarding` 44533a0f254Sitojun if [ "X${fw}" == X"0" ]; then 44633a0f254Sitojun # $rtsold_flags is imported from /etc/rc.conf; 44733a0f254Sitojun # If $rtsold_flags == NO, then rtsold isn't run. 44833a0f254Sitojun if [ "X${rtsold_flags}" != X"NO" ]; then 44933a0f254Sitojun echo -n ' rtsold' 45033a0f254Sitojun /usr/sbin/rtsold ${rtsold_flags} 45133a0f254Sitojun fi 45233a0f254Sitojun else 45333a0f254Sitojun # $route6d_flags is imported from /etc/rc.conf; 45433a0f254Sitojun # If $route6d_flags == NO, then route6d isn't run. 45533a0f254Sitojun if [ "X${route6d_flags}" != X"NO" ]; then 45633a0f254Sitojun echo -n ' route6d' 45733a0f254Sitojun /usr/sbin/route6d ${route6d_flags} 45833a0f254Sitojun fi 45933a0f254Sitojun # $rtadvd_flags is imported from /etc/rc.conf; 46006347140Sitojun # If $rtadvd_flags == NO, then rtadvd isn't run. 46106347140Sitojun if [ "X${rtadvd_flags}" != X"NO" ]; then 46233a0f254Sitojun echo -n ' rtadvd' 46333a0f254Sitojun /usr/sbin/rtadvd ${rtadvd_flags} 46433a0f254Sitojun fi 46533a0f254Sitojun fi 46633a0f254Sitojunfi 46733a0f254Sitojun 468edae963cSderaadt# $rwhod is imported from /etc/rc.conf; 469df930be7Sderaadt# if $rwhod == YES, rwhod is run. 470df930be7Sderaadtif [ X${rwhod} = X"YES" ]; then 471df930be7Sderaadt echo -n ' rwhod'; rwhod 472df930be7Sderaadtfi 473df930be7Sderaadt 474423a3640Sderaadt 475a5ff35f6Sfgschif [ X${lpd_flags} != X"NO" ]; then 476a5ff35f6Sfgsch echo -n ' printer'; lpd ${lpd_flags} 477423a3640Sderaadtfi 478df930be7Sderaadt 479edae963cSderaadt# $sendmail_flags is imported from /etc/rc.conf; 4800e208981Smillert# If $sendmail_flags == NO or /etc/mailer.conf doesn't exist, then 4814844ae79Sderaadt# sendmail isn't run. We call sendmail with a full path so that 4820e208981Smillert# SIGHUP works. Note that /usr/sbin/sendmail may actually call a 4830e208981Smillert# mailer other than sendmail, depending on /etc/mailer.conf. 4840e208981Smillertif [ "X${sendmail_flags}" != X"NO" -a -s /etc/mailer.conf ]; then 485e18bddb2Smillert echo -n ' sendmail'; ( /usr/sbin/sendmail ${sendmail_flags} >/dev/null 2>&1 & ) 486df930be7Sderaadtfi 487df930be7Sderaadt 48852e6779cSderaadtif [ "X${httpd_flags}" != X"NO" ]; then 489205e112eSespie # Clean up left-over httpd locks 490205e112eSespie rm -f /var/www/logs/{ssl_mutex,httpd.lock,accept.lock}.* 491f3079313Sangelos echo -n ' httpd'; /usr/sbin/httpd ${httpd_flags} 49252e6779cSderaadtfi 49352e6779cSderaadt 494b6330bccSdownsjif [ "X${ftpd_flags}" != X"NO" ]; then 495b6330bccSdownsj echo -n ' ftpd'; /usr/libexec/ftpd ${ftpd_flags} 496b6330bccSdownsjfi 497b6330bccSdownsj 4984265ef72Sfgschif [ "X${identd_flags}" != X"NO" ]; then 4994265ef72Sfgsch echo -n ' identd'; /usr/libexec/identd ${identd_flags} 5004265ef72Sfgschfi 5014265ef72Sfgsch 502f9eade57Sbeck# $smtpfwdd_flags is imported from /etc/rc.conf; 503f9eade57Sbeck# If $smtpfwdd_flags == NO, smtpfwdd isn't run. 504f9eade57Sbeckif [ "X${smtpfwdd_flags}" != X"NO" ]; then 505f9eade57Sbeck echo -n ' smtpfwdd'; /usr/libexec/smtpfwdd ${smtpfwdd_flags} 506f9eade57Sbeckfi 507f9eade57Sbeck 508f9eade57Sbeck 5096a5aa348Sangelosif [ X${inetd} = X"YES" -a -e /etc/inetd.conf ]; then 510df930be7Sderaadt echo -n ' inetd'; inetd 511423a3640Sderaadtfi 512df930be7Sderaadt 513edae963cSderaadt# $rarpd_flags is imported from /etc/rc.conf; 514df930be7Sderaadt# If $rarpd_flags == NO or /etc/ethers doesn't exist, then 515df930be7Sderaadt# rarpd isn't run. 516a975dbe5Smillertif [ "X${rarpd_flags}" != X"NO" -a -s /etc/ethers ]; then 517df930be7Sderaadt echo -n ' rarpd'; rarpd ${rarpd_flags} 518df930be7Sderaadtfi 519df930be7Sderaadt 520edae963cSderaadt# $bootparamd_flags is imported from /etc/rc.conf; 521df930be7Sderaadt# If $bootparamd_flags == NO or /etc/bootparams doesn't exist, then 522df930be7Sderaadt# bootparamd isn't run. 523a975dbe5Smillertif [ "X${bootparamd_flags}" != X"NO" -a -s /etc/bootparams ]; then 524df930be7Sderaadt echo -n ' rpc.bootparamd'; rpc.bootparamd ${bootparamd_flags} 525df930be7Sderaadtfi 526df930be7Sderaadt 527edae963cSderaadt# $rbootd_flags is imported from /etc/rc.conf; 528df930be7Sderaadt# If $rbootd_flags == NO or /etc/rbootd.conf doesn't exist, then 529df930be7Sderaadt# rbootd isn't run. 530a975dbe5Smillertif [ "X${rbootd_flags}" != X"NO" -a -s /etc/rbootd.conf ]; then 531df930be7Sderaadt echo -n ' rbootd'; rbootd ${rbootd_flags} 532df930be7Sderaadtfi 533df930be7Sderaadt 534df4692e3Smaja# $mopd_flags is imported from /etc/rc.conf; 535df4692e3Smaja# If $mopd_flags == NO or /tftpboot/mop doesn't exist, then 536df4692e3Smaja# mopd isn't run. 537df4692e3Smajaif [ "X${mopd_flags}" != X"NO" -a -d /tftpboot/mop ]; then 538df4692e3Smaja echo -n ' mopd'; mopd ${mopd_flags} 539df4692e3Smajafi 540df4692e3Smaja 54148a156d0Sderaadtif [ X"${sshd_flags}" != X"NO" ]; then 54248a156d0Sderaadt /usr/sbin/sshd ${sshd_flags}; echo -n ' sshd' 5437e42516dSderaadtfi 5447e42516dSderaadt 545df930be7Sderaadtecho '.' 546df930be7Sderaadt 54789092446Smickeyif [ -f /etc/wsconsctl.conf ]; then 54889092446Smickey( 54989092446Smickey # delete comments and blank lines 55089092446Smickey set -- `stripcom /etc/wsconsctl.conf` 55189092446Smickey while [ $# -ge 1 ] ; do 55289092446Smickey wsconsctl -w $1 55389092446Smickey shift 55489092446Smickey done 55589092446Smickey) 55689092446Smickeyfi 55789092446Smickey 558e1ebb78aSderaadtif [ -f /sbin/kbd -a -f /etc/kbdtype ]; then 559e1ebb78aSderaadt kbd `cat /etc/kbdtype` 560e1ebb78aSderaadtfi 561e1ebb78aSderaadt 562fde3f312Shin# KerberosIV runs ONLY on the KDC servers 563fde3f312Shin# Kadmin runs only on the master server 564fde3f312Shinif [ X${krb4_master_kdc} = X"YES" ]; then 565fde3f312Shin echo 'KerberosIV KDC' 56659317418Sart /usr/libexec/kerberos >> /var/log/kerberos.log & 56759317418Sart /usr/libexec/kadmind -n >> /var/log/kadmind.log & 5688b7444a6Sderaadtfi 5698b7444a6Sderaadt 5702d54352cSart# Kpropd runs only on Kerberos slave servers 571fde3f312Shinif [ X${krb4_slave_kdc} = X"YES" ]; then 5722d54352cSart echo 'kerberos slave server' 5732d54352cSart /usr/libexec/kerberos -s >> /var/log/kerberos.log & 5747760f942Shin /usr/libexec/kpropd -i & 5752d54352cSartfi 5762d54352cSart 577fde3f312Shin# KerberosV master KDC 578fde3f312Shinif [ X${krb5_master_kdc} = X"YES" ]; then 579fde3f312Shin echo 'KerberosV master KDC' 580fde3f312Shin /usr/libexec/kdc & 581fde3f312Shin /usr/libexec/kadmind & 582fde3f312Shin /usr/libexec/kpasswdd & 583fde3f312Shinfi 584fde3f312Shin 585fde3f312Shin# KerberosV slave KDC 586fde3f312Shinif [ X${krb5_slave_kdc} = X"YES" ]; then 587fde3f312Shin echo 'KerberosV slave KDC' 588fde3f312Shin /usr/libexec/kdc & 589fde3f312Shin # Remember to enable hpropd in inetd.conf 590fde3f312Shinfi 591fde3f312Shin 5922f33850bSderaadt[ -f /etc/rc.local ] && . /etc/rc.local 5938b7444a6Sderaadt 59474491808Smillertecho -n standard daemons: 595f026f8beSmarc 596f026f8beSmarc# $apmd_flags is imported from /etc/rc.conf; 597f026f8beSmarc# don't run daemon if $apmd_flags == NO or /usr/sbin/apmd doesn't exist 598f026f8beSmarcif [ "X${apmd_flags}" != X"NO" -a -x /usr/sbin/apmd ]; then 599f026f8beSmarc echo -n ' apmd'; /usr/sbin/apmd ${apmd_flags} 600f026f8beSmarcfi 601f026f8beSmarc 602a6582eadSderaadtif [ -x /usr/sbin/screenblank ]; then 603a6582eadSderaadt echo -n ' screenblank'; /usr/sbin/screenblank 604a6582eadSderaadtfi 605a6582eadSderaadt 60674491808Smillertecho -n ' cron'; cron 607f026f8beSmarc 60874491808Smillertecho '.' 60974491808Smillert 610df930be7Sderaadtdate 6118569782fSderaadt 6124ce81c70Sderaadtif [ "X${wsmoused_flags}" != X"NO" -a -x /usr/sbin/wsmoused ]; then 6134a4c21d8Sderaadt echo 'starting wsmoused...'; /usr/sbin/wsmoused ${wsmoused_flags} 61496ac2838Saaronfi 615f8810935Saaron 616f8810935Saaron# Alternatively, on some architectures, xdm may be started in /etc/ttys. 617f8810935Saaronif [ "X${xdm_flags}" != X"NO" ]; then 618f8810935Saaron echo 'starting xdm...'; /usr/X11R6/bin/xdm ${xdm_flags} 6198569782fSderaadtfi 6208569782fSderaadt 621df930be7Sderaadtexit 0 6228b757a89Sart 623