This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.
wondering what the hw-config of a machine is, and the logs have been
rotated many times since reboot already.
Added:
/sbin/dmesg > /var/tmp/dmesg.boot
to /etc/rc
2.2 candidate
This is a lot more robust and handles errors a lot better. It also cleans
up stray, hopeless, or unmodified files rather than leaving them there
forever.
. crate the symlink for /dev/log if required, then
. remove the old socket (savecore might have already created it
accidentally), then
. start syslogd.
(Btw., our test(1) misses an option to test for a socket.)
- split the "starting network daemons" in half.
- The first half starts things necessary to get full name service up.
- The quota check etc moved from "before network" to after the name
services are running. quotacheck does a while(p=getpwent()) which
isn't real good without YP running...
- moved rwhod a little later to put it with the other network stuff.
- deferred inetd a tad so that it's after ldconfig and dev_mkdb,
otherwise you get logins before you're ready.
Unresolved: named is started before ypserv/ypbind still, but named does
a while(s = getservent()) and while (p=getprotoent()) to suck in the
entire database into memory. This means you cannot have a "+" in the
/etc/services or /etc/protocols files or you get a long hang at boot.
Reviewed by: phk
Submitted by: Tatsumi Hosokawa <hosokawa@mt.cs.keio.ac.jp> & BSD Nomads
I re-wrote alot of this, but the ideas are based on the code from the
most recent pccard-snapshot.
While I'm at it, add a commented-out sample amd flags line to sysconfig
and drop a sample amd.map file in this directory for easy copying.
I know that this file's contents are highly site-variable, but the one I've
chosen for an example is also the one I've seen on 99.9% of the amd-using
sites I've visited. I think it's a fair default.
directories to check in looking for port startup scripts. The specific gunge
for apache httpd, gated and pcnfsd in /etc/sysconfig and /etc/netstart is
gone now. Note that pcnfsd's troubles aren't necessarily over (and probably
why NetBSD brought it into their sources) - anyone adding pcnfsd will STILL
have to tweak /etc/sysconfig in order to set the new variable
`weak_mountd_authentication' to YES. The flags to mountd are directly affected
by pcnfsd's requirements for non-root mounts, unfortunately! :-(
Submitted by: paul & jkh
in FreeBSD and should never have got in here.
Removed hard-coded /etc/rc.local.d hacks and implemented a more flexible
solution.
Added a local configuration area to sysconfig.
don't like it, they don't have to use it. The check makes sure that
/etc/rc.local.d exists before attempting to do anything with it. Now
packages will be able to add their startups as /etc/rc.local.d/<pkgname>.sh
in order to get local startup behavior. Maybe we can stop adding
knobs to /etc/sysconfig for ports/packages now?
Submitted by: wollman & jkh
Add nis_ypsetflags sysconfig entry and appropriate code in rc to call
ypset if needed. Should probably automatically add `-ypsetme' to ypbind
flags if this is set.
have non-critical nfs volumes in /etc/fstab they should have option bg
on them. The behavior of the system is more tuneable this way, and
allows a slow mounting /usr over nfs to work.
Submitted by: bde
when the single user shell was terminated. These changes disallow mounting
or R/W upgrading filesystems that are dirty unless "-f" (force) option
is used with mount. /etc/rc has been modified to abort the startup if
one or more non-nfs partitions fail to mount.
Reviewed by: Poul-Henning Kamp, Rod Grimes
Have netstart directly source sysconfig so that it stands on its own.
Do not source netstart in rc, run it with sh.
Rework the dangerous /etc/hostname.* so that it uses a variable with
a list of interfaces and a variable for each interface in that list.
The files /etc/hostname.* become obsolete with this change, the
information is now stored in /etc/sysconfig.
Source any /etc/start_if.${ifn} files so they can export things to
netstart (plans for future enhancements in this area.)
Obsolete /etc/defaultrouter, this is now down with $defaultrouter from
sysconfig.
changes to it based upon other outstanding bug reports and commits made
after his work.
Comments:
(a) sysconfig is still used to do all configuration. I was not going to
change that out from under you.... a user never need edit netstart
or rc* unless they're being very weird.
(b) rc.maint has been folded back into rc. It is just unworkable as
a separate chunk because of ordering bogosities
(c) netstart does what it says... it starts up enough of the network to
get up, it doesn't start every bloody daemon that might talk to a
socket... netstart ifconfig's the devices and sets up routing if
configured to do so.
(d) nfs disks are mounted immediately after netstart completes
(e) syslog is started as early as possible (right after nfs) so that error
messages can get logged to remote syslog servers properly
(f) named is started (there is an argument that says that named should be
started before syslogd because if you are the dns server for your domain,
you'd like named to resolve remote hosts in syslog.conf, but this is
a minority case and the trivial workarround is to put the syslog host
in /etc/hosts or use an /etc/resolv.conf -- why? because you want syslog
to catch named errors, which is a MUCH more important and likely occurance)
(g) NOW all of the rest of the network daemons such as the time stuff, RPC,
NIS, NFS, Kerberos and inetd are started
(h) the rest of the generic stuff is done (cron/printer/sendmail)
(i) shared libraries are set
(j) /etc/rc.i386 is run (this does FreeBSD/386 specific stuff like ibcs2,
xtend, and all of the syscons stuff
(this is actually started as /etc/rc.`uname -m`
(k) the syscons stuff has gotten a serious cleaning to make it consistent
with rc conventions
(l) rc.local has had the comments about syscons removed (they are not relevant
to this file now) and the full name of the kernel has been restored to
/etc/motd
Submitted by: pts
before the rest of the system daemons are brought up and *after* the
network interfaces have been configured.
Also fix one other potential problem: the NIS services need to be started
relavively early since some of the other daemons might need them. The
automounter is a good example: if you use amd with NIS-based maps, you'd
better have NIS running before you start it. :) I think mountd might
need it too, now that netgroups can be read via NIS as well.
1. Move all system configuration variables into /etc/sysconfig
2. Adapt other files to use it.
3. Add a host of new variables for micro-managing your system in various
ways. For 2.1, /etc/sysconfig will be machine-edited so that the user
doesn't even have to care at all about the various funny names we picked.
4. Enable dset. We won't get it debugged if we never use it, and no one
has said anything negative about it yet, so here goes!
5. Try to use one consistent style throughout.
- Do ntp right
- Move recenrly-added and long-standing junk from rc.local into rc, so
. that rc.local truly is LOCAL.
- Fix named invocation to use the correct boot file location.
make.conf: Pulled in the following changes that had been commited
to share/examples/etc:
----------------------------
revision 1.6
date: 1994/09/20 22:30:33; author: adam; state: Exp; lines: +3 -3
BOOTWAIT example converted to milliseconds calibration
----------------------------
revision 1.4
date: 1994/09/19 21:35:28; author: wollman; state: Exp; lines: +7 -1
Document NO_SHARED_LIBCC_INT.
----------------------------
revision 1.3
date: 1994/09/19 21:28:11; author: wollman; state: Exp; lines: +12 -17
Install /etc from the same source as /usr/share/examples/etc (mostly).
----------------------------
revision 1.2
date: 1994/09/19 02:05:08; author: ache; state: Exp; lines: +1 -11
Remove STARTUP_LOCALE, obsoleted now
----------------------------
revision 1.1
date: 1994/09/08 19:08:59; author: jkh; state: Exp;
Add a sample make.conf. Also document the new X11BASE variable, and
expand some of the documentation for other entries.
Submitted by: jkh
----------------------------
manpath.config: Pulled down from Attic, and merged share/examples/etc
changes.
rc: Pulled in the following change from share/examples/etc:
----------------------------
revision 1.2
date: 1994/09/19 23:13:37; author: ache; state: Exp; lines: +1 -2
Remove warning about adjkerntz /var/run file
----------------------------
>From: chmr@edvz.tu-graz.ac.at (Christoph Robitschko)
Date: Fri, 21 Feb 1992 09:40:35 +0100 (MET)
The last version expected elvis* files in /var/tmp, while elvis puts
elv* files there.
back editor!
Add nvi recovery precedure from man page.
Fix ntpdate echo lines so that it looks pretty (ntpdate spits out 1 line
of output that makes the system boot up look real ugly if you do it
echo -n, so I chaged it to echo, and then added a
echo -n 'starting more network daemons:' so any addition daemon starts
look normal.
Further it implements crontab -e.
I moved cron from /usr/libexec to /usr/sbin where most daemons are
that are run from rc. That also gets rid of the ugly path crond
used to have in ps(1) outputs. Further I renamed it to cron, as
Paul Vixie likes it and is done by NetBSD.
NOTE VERY WELL THE FOLLOWING:
1) Systems crontab changed. Every users crontab resides in /var/cron
*EXCEPT* root's. This is a special crontab as it resides in
/etc. Further it is the *ONLY* crontab file in which you specify
usernames. See /usr/src/etc/crontab. This is also done by BSDI's
BSD/386 as far as I know (they provided the patches for it anyway)
2) So you *must* delete root's crontab and reinstall the copy
in /etc from /usr/src/etc.
'Must' is to much: the old installed crontab will work but cron
will also try to 'run' /etc/crontab.
3) Last but not least: cron's logging is now done via syslog. Note
that logging by cron is done lowercase when it logs about itsself
and uppercase when it logs user events, like installing a new crontab.
The default logfile file is the same as before:
syslog.conf:cron.* /var/cron/log
-Guido
gives the flags to be passed to sendmail when it is started. (If it is
"NO", sendmail is not started.) Also, always start the portmapper regardless
of the value of $nfs_server; this should prevent the inetd complaints we
have seen from recurring.