Commit Graph

60 Commits

Author SHA1 Message Date
rse
56379f0e5b Fix system shutdown timeout handling by again supporting longer running
shutdown procedures (which have a duration of more than 120 seconds).

We have two user-space affecting shutdown timeouts: a "soft" one in
/etc/rc.shutdown and a "hard" one in init(8). The first one can be
configured via /etc/rc.conf variable "rcshutdown_timeout" and defaults
to 30 seconds. The second one was originally (in 1998) intended to be
configured via sysctl(8) variable "kern.shutdown_timeout" and defaults
to 120 seconds.

Unfortunately, the "kern.shutdown_timeout" was declared "unused" in 1999
(as it obviously is actually not used within the kernel itself) and
hence was intentionally but misleadingly removed in revision 1.107 from
init_main.c. Kernel sysctl(8) variables are certainly a wrong way to
control user-space processes in general, but in this particular case the
sysctl(8) variable should have remained as it supports init(8), which
isn't passed command line flags (which in turn could have been set via
/etc/rc.conf), etc.

As there is already a similar "kern.init_path" sysctl(8) variable which
directly affects init(8), resurrect the init(8) shutdown timeout under
sysctl(8) variable "kern.init_shutdown_timeout". But this time document
it as being intentionally unused within the kernel and used by init(8).
Also document it in the manpages init(8) and rc.conf(5).

Reviewed by: phk
MFC after: 2 weeks
2005-09-15 13:16:07 +00:00
delphij
9f0f84e349 Make WARNS=6 happy with our init(8):
- Use more ``const''s where suitable.
	- Define strk() as a static function in global scope.
	  This avoids the "nested extern declaration" warnings.
	- Use static initialization of strings, rather than
	  referring string constants through char *.
	- Bump WARNS from 0 to 6.
2005-01-11 14:34:29 +00:00
imp
19102a399d Turns out that revision 1.52 was a bad idea. It broke the long
standing ability to list a non-existant device in /etc/ttys to keep it
from dying.  This is a documented feature of init(8):
     The init utility can also be used to keep arbitrary daemons running,
     automatically restarting them if they die.  In this case, the first field
     in the ttys(5) file must not reference the path to a configured device
     node and will be passed to the daemon as the final argument on its com-
     mand line.  This is similar to the facility offered in the AT&T System V
     UNIX /etc/inittab.

So rather than fix the man page to 'break' this feature, back out the change.

At the time this change was made, people felt that the spamage from
getty was annoying on headless consoles.  Andrew Gallatin noted:
> Most of my machines are headless without video cards and use a serial
> console.  With devfs this means that /dev/ttyv[1-N] do not exist and
> getty bitches like this:
>
> Sep 26 11:00:11 monet getty[543]: open /dev/ttyv1: No such file or directory

and we went off and applied this hack rather than fixing getty to
sleep forever when it gets an unknown device, as was Andrew's other
suggestion.  Since it breaks things, I'm off to do that instead.
2004-09-28 04:22:55 +00:00
markm
90f91e7879 Remove advertising clause from University of California Regent's license,
per letter dated July 22, 1999.

Approved by: core, imp
2004-04-09 19:58:40 +00:00
bde
1b963c9bef Fixed misspellings of 0 as NULL. 2004-03-11 10:01:12 +00:00
imp
f1d2a9b826 Fix the case where one goes from zero to more than zero items enabled
in /etc/ttys.  Before this fix, once the count of active services
reaches 0, one could never restart any more without a reboot.

Steve Passe did the leg work on this patch.  After he found the fix,
we discovered that an identical fix had been made to NetBSD.

Approved by: re@ <scottl>
Approval tool: peril sensitive sunglasses
2003-12-05 04:28:03 +00:00
green
25073c9645 Back out the previous commit, since there could be dire consequences if
/etc/rc were accidentally executed (as requested by other committeers).
2002-12-17 21:23:36 +00:00
green
29351ad491 /home/green/tmp/cvsSFosXg 2002-12-17 20:39:38 +00:00
jhb
762d97ed23 Give up on a tty if opening it's special file returns ENOENT like we do for
ENXIO.

Glanced at by:	imp, gallatin
2002-09-27 16:02:28 +00:00
mux
ba55503fcc I should have committed this ages ago...
Convert init(8) to use nmount() instead of mount() when
it has to mount devfs.  This doesn't happen normally,
since the kernel is supposed to mount devfs itself.
2002-08-03 16:21:33 +00:00
imp
90c76cbe1e o remove __P
o Use ansi function definitions
o unifdef -D__STDC__
2002-03-20 22:53:13 +00:00
obrien
73c6870b18 Remove 'register' keyword.
It does not help modern compilers, and some may take some hit from it.
(I also found several functions that listed *every* of its 10 local vars with
 "register" -- just how many free registers do people think machines have?)
2002-03-20 17:55:10 +00:00
des
a93e80dada Allow reboot during runcom.
PR:		bin/28116
Submitted by:	Valentin Nechayev <netch@netch.kiev.ua>
MFC in:		1 week
2001-10-15 20:34:43 +00:00
kris
5e75b336b9 Silence non-constant format string warnings by marking functions
as __printflike()/__printf0like(), adding const, or adding missing "%s"
format strings, as appropriate.

MFC after:	2 weeks
2001-08-19 08:19:37 +00:00
sheldonh
9bfb9eedcd Use STD{ERR,IN,OUT}_FILENO instead of their numeric values. The
definitions are more readable, and it's possible that they're
more portable to pathalogical platforms.

Submitted by:   David Hill <david@phobia.ms>
2001-07-26 11:02:39 +00:00
mikeh
d795e6a826 Fix typo which could lead to memory leak.
PR:		misc/28283
MFC after:	2 weeks
2001-06-20 01:56:09 +00:00
asmodai
5f89669270 Fix typo present since 1997: single used mode -> single user mode. 2001-03-03 08:12:58 +00:00
phk
f8ce1eae95 Fix a cosmetic problem with some very defensive programming: The devfs
mount would show up as "/dev/", loose that trailing slash.
2001-02-08 22:07:08 +00:00
obrien
c2ee1dcc02 Add `_PATH_DEVZERO'.
Use _PATH_* where where possible.
2000-12-09 09:35:55 +00:00
phk
fd7a4d0371 Mount DEVFS with no options. 2000-08-26 11:53:53 +00:00
asmodai
3022b1ea3d Remove unused include. 2000-05-01 20:20:05 +00:00
imp
7fec3d2787 Add include of errno.h where needed, remove extern int errno where not.
These commits were inspired by a similar commit to netbsd.
2000-04-14 06:15:01 +00:00
alfred
a34d288bc9 detect deleted tty lines in /etc/ttys. 2000-02-19 20:28:45 +00:00
dillon
e8e6885c6b Finish up umntall support. init now passed an argument to the
rundown script 'reboot' or 'single'.  ISO support (which never
    worked) has been removed from mount_nfs.  mount_nfs and umount
    now use mounttab, which allows umntall to work properly.  The
    rc scripts now call umntall as appropriate.

Submitted by:	Martin Blapp <mb@imp.ch>
1999-11-22 04:23:11 +00:00
kato
6ed01edd23 FreeBSD kernel doesn't allow any process to decrease securelevel. So,
init(8) cannot decrease securelevel.  The manual page explains this
and single_user() doesn't try to downgrade kernel to insecure mode.

Reviewed by:	bde (manual page)
1999-09-06 08:41:32 +00:00
peter
76f0c923fe $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
ru
78cfb5805b Fix a non-critical memory leak.
PR:		12769
Submitted by:	Peter Jeremy <peter.jeremy@alcatel.com.au>
1999-07-23 08:28:46 +00:00
ru
412b642b28 Bring in System V run-level patches (turned off by default).
While I'm here, fix some typos in the manpage.

Requested by:	des
1999-06-18 09:08:09 +00:00
ru
f97d9ce3bb Init(8) will halt the system if sent USR1 signal,
or halt and turn the power off if sent SIGUSR2.

PR:		5451
Submitted by:	Leif Neland <leifn@image.dk>
Reworked by:	ru
Reviewed by:	-hackers
1999-06-16 20:01:19 +00:00
phk
7ebd4f74fb Memory management error in init.
PR:		7320
Reviewed by:	phk
Submitted by:	Anders Thulin <Anders.X.Thulin@telia.se>
1998-07-22 05:45:11 +00:00
charnier
fff847fc47 Correct .Nm use. Add rcsid. Use min for minutes instead of mn. 1998-07-06 06:56:08 +00:00
jraynard
149cf90af1 Don't assume sigset_t and int are equivalent. 1998-03-02 23:19:29 +00:00
peter
0e8d0ba0f2 This has always bugged me. At single user, the implied example it gives
is not valid - it says that "sh" is the default, but you can't
actually type "sh" at this prompt - it has to be /bin/sh or some other
full pathname.
1997-10-10 12:14:48 +00:00
davidn
228bbc181c Test that rc.shutdown exists before attempting to run it - silently
return success if it doesn't to prevent any unwanted error msgs.
1997-08-18 01:40:12 +00:00
ache
9f4c4482b5 runshutdown(): get rid of getdtablesize loop, it gains nothing now
but can waste time if many descriptors are available
1997-08-06 16:34:51 +00:00
ache
a867dc6278 rc.shutdown fixes:
1) revoke -> HUP
2) controlling terminal already present
3) add missing setprocresources call
1997-08-06 16:07:52 +00:00
davidn
c0b9ea4c76 Add /etc/rc.shutdown capability to init.
Add sample /etc/rc.shutdown (which is just a shell for now).
Submitted by:	Ollivier Robert <roberto@keltia.freenix.fr>
1997-08-02 00:22:52 +00:00
ache
043d604a07 Move logwtmp(shutdown) call before any real action in death(). 1997-07-08 11:51:11 +00:00
ache
baa3a4dbcc 1. Replace malloc+bzero by calloc
2. Revoke internal active session list only now, not whole /etc/ttys
1997-07-05 19:36:55 +00:00
ache
d4280e0ef8 death: revoke all lines listed in /etc/ttys instead of sending HUP
to all processes
1997-07-04 22:09:07 +00:00
ache
b44556e359 Include <libutil.h> instead of private declarations 1997-07-03 11:37:43 +00:00
ache
49221f7583 Remove unneded cast in login_getclassbyname which cause warning 1997-07-02 13:53:31 +00:00
pst
489b7a4fe8 Attempt to open the device for reading before actually adding the device
to the session list.  If the device comes back as unconfigured, just
ignore that line in /etc/ttys.  If someone HUP's init, we'll try again.

This change stops getty's from hanging on vty and sio ports that don't
exist, either due to LKM drivers not being loaded, or probes failing.
Reviewed by:	bde
1997-06-28 08:18:29 +00:00
charnier
98daca0d1c Use err(3). 1997-06-13 06:24:42 +00:00
phk
85568f7654 Fix mount call for devfs.
Submitted by:	bde
1997-03-30 09:22:41 +00:00
dg
d71873490f Protect from stack overrun via /etc/ttys, which could possibly allow a
root user to change the securelevel. Pointed out by Thomas H. Ptacek
<tqbf@enteract.com>.
1997-02-19 08:04:58 +00:00
davidn
71e4601fc6 Style police. 1997-01-22 02:07:55 +00:00
davidn
557de278bc Impose login_cap resource limits on processes started by init.
/etc/rc started with "daemon" settings.
	"window=" started with "default" settings
	gettys started with "default" settings.
This should open the way to junk kernel options MAX_{OPEN,CHILD}
and the corresponding sysctl vars.
1997-01-19 16:49:13 +00:00
phk
91bd35f309 If passed the -d flag, mount devfs on /dev 1996-10-28 11:03:19 +00:00
dima
b6116933b0 If root does not have a password, `init' should not ask to enter it.
otherwise it's not possible to get into single-user mode, if root
does not have password and console insecure.
1995-11-10 07:06:59 +00:00